Saya akan mengumpulkan aplikasi untuk mengotomatiskan situs / aplikasi eksternal. Dalam beberapa kasus, saya perlu menavigasi situs seperti yang dilakukan pengguna (beberapa tautan yang harus saya ikuti tidak dapat diprediksi dan harus diuraikan dari respons)
Saya sudah menggunakan Html Agility Pack , dan saya menyadari Tidy jika itu diperlukan.
Apakah ada teknologi lain yang harus saya waspadai?
Apakah ada pola yang disarankan untuk dapat menyesuaikan dengan cepat jika aplikasi web eksternal berubah? Saya membayangkan merangkum validasi tanggapan sebagai beberapa jenis strategi atau pola serupa yang dapat dengan mudah dipisahkan / dicolokkan seperlunya, tetapi saran spesifik apa pun akan bagus.
c#
.net
html
web-scraping
Terima kasih
sumber
sumber
Jawaban:
Jika Anda ingin mengotomatiskan navigasi situs web eksternal seperti yang dilakukan pengguna, Watin sangat cocok untuk itu. Ini akan mendorong browser web melalui model objek, dan memiliki berbagai kemampuan parsing yang dibangun di atas DOM (serta kemampuan non-DOM yang akan Anda temukan di browser, termasuk skrip).
Berikut tautannya:
Watin.org
sumber
Jika Anda mencari kemampuan untuk dengan cepat membuat perubahan untuk melacak yang ada di aplikasi web eksternal, maka saya akan melihat skrip. Jika C # adalah bahasa pilihan Anda, maka lihat mengkompilasi kode dengan cepat. Jika Anda menggunakan database, kode skrip dapat disimpan di sana, jika tidak, file teks biasa juga akan berfungsi.
Mengenai pola GoF, Strategi adalah pilihan buku teks.
"Pola" lain yang perlu dipertimbangkan, terutama karena Anda menyebutkan memvalidasi respons yang menggunakannya untuk memilih tindakan berikutnya, adalah mesin kondisi-terbatas . Misalnya, status untuk klien web-mail bisa "tidak masuk", "di kotak masuk", "membaca pesan", "mengedit balasan", dll. Anda akan melakukan beberapa tindakan tergantung pada keadaan, kemudian berdasarkan pada jawabannya, pilih status selanjutnya.
sumber
Pola tersebut harus benar-benar berasal dari masalah tetapi di sini ada beberapa pilihan:
Jika Anda terutama berkaitan dengan biaya pengembangan / gangguan yang sedang berlangsung: Pola Strategi (telah disebutkan) - gunakan ini untuk mengimplementasikan antarmuka tingkat komponen, dan gunakan metodologi pengikatan dinamis untuk menyelesaikan strategi (implementasi) spesifik. Wadah IOC (saya suka Autofac hari ini) akan bekerja dengan baik.
Jika Anda perlu mendukung yang di atas ditambah memiliki kebutuhan untuk skala: Mengurangi Peta (ada yang tahu m + r fx yang baik untuk .net?).
sumber
Bergantung pada seberapa banyak perubahan halaman web ini bisa jadi sulit. Anda bisa menyimpan daftar ekspresi reguler standar dalam DB dan kemudian ketika satu tidak lagi berfungsi, Anda dapat mengulangi set dasar dengan yang lain sampai Anda menekan satu. Maka Anda ingin menandai itu untuk digunakan di masa depan.
sumber