Pola dan praktik untuk Scraping Web di .Net (C #) [ditutup]

9

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.

Terima kasih
sumber
Tentang itu, panduan langkah demi langkah, atau Memulai - Memulai Cepat yang dapat diselesaikan dalam 15-20 menit? Saya memberikan Anda contoh panduan langkah demi langkah yang baik seperti berniecook.wordpress.com/2013/01/13/... Saya ingin cepat-cepat menutupi beberapa asumsi sebelum kami memulai: instal (syarat-syarat, peralatan yang diperlukan), konfigurasi, dan berlari cepat. Target akan menjadi sampel "siap dan siap". Mungkin lebih baik contoh aplikasi nyata.
Kiquenet

Jawaban:

4

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

rambut gimbal
sumber
Watin seperti perpustakaan JavaScript favorit Anda untuk C #.
The Muffin Man
Adakah solusi akhir dengan aplikasi contoh kode sumber lengkap ? IMHO, sampel yang lebih baik untuk meminimalkan kurva pembelajaran adalah aplikasi nyata dengan kode sumber lengkap dan pola & praktik yang baik
Kiquenet
0

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.

Renyah
sumber
0

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?).

sbrenton
sumber
-1

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.

Josh O'Bryan
sumber