.Net (C #) Web Scraping kalıpları ve uygulamaları [kapalı]


9

Harici bir web sitesini / uygulamayı otomatikleştirmek için bir uygulama oluşturacağım. Bazı durumlarda sitede bir kullanıcı gibi gezinmem gerekecek (izlemem gereken bazı bağlantılar tahmin edilemiyor ve bir yanıttan ayrıştırılması gerekiyor)

Zaten Html Agility Pack kullanıyorum ve gerekirse Tidy farkındayım .

Farkında olmam gereken başka teknolojiler var mı?

Harici web uygulamasının değişmesi durumunda hızlı bir şekilde ayarlanabilmesi için önerilen kalıplar var mı? Yanıtların validasyonunu, gerektiğinde kolayca ayrılabilen / takılabilen bir tür strateji veya benzer bir desen olarak kapsadığımı öngörüyorum, ancak herhangi bir özel öneri harika olurdu.


Bu konuda, herhangi bir adım adım kılavuz veya Başlangıç ​​- 15-20 dakika içinde tamamlanabilen Hızlı Başlangıç? Size iyi bir adım adım kılavuz örneği alıyorum berniecook.wordpress.com/2013/01/13/… Başlamadan önce birkaç varsayımı hızla kapatmak istedim: yükleyin (gerekli, araçlar gerekli), yapılandırın, bir hızlı çalışıyor. Hedef "git ve hazır" bir örnek olacaktır. Belki daha iyi bir uygulama örneği.
Kiquenet

Yanıtlar:


4

Harici bir web sitesinde gezinmeyi kullanıcı gibi otomatikleştirmek istiyorsanız, Watin bunun için mükemmeldir. Bir web tarayıcısını bir nesne modeli aracılığıyla yönlendirir ve DOM üzerine inşa edilmiş çok çeşitli ayrıştırma özelliklerine (ayrıca komut dosyası da dahil olmak üzere bir tarayıcıda bulacağınız DOM dışı yeteneklere) sahiptir.

İşte bir bağlantı:

Watin.org


Watin, C # için favori JavaScript kitaplığınız gibidir.
Muffin Man

Tam kaynak kodu örnek uygulaması ile son bir çözüm var mı? IMHO, öğrenme eğrisini en aza indirmek için daha iyi örnekler, tam kaynak kodu ve iyi kalıpları ve uygulamaları olan gerçek uygulamalardır
Kiquenet

0

Harici web uygulamasındakileri izlemek için hızlı bir şekilde değişiklik yapma yeteneği arıyorsanız , komut dosyasına bakarım. C # tercih ettiğiniz dilse, derleme kodunu anında inceleyin. Bir veritabanı kullanıyorsanız, kod kodu orada saklanabilir, aksi takdirde düz metin dosyaları da çalışır.

GoF kalıplarına gelince, Strateji ders kitabı seçimidir.

Dikkate alınması gereken diğer "kalıp", özellikle yanıtları bir sonraki eylemi seçmek için kullanarak doğruladığınızdan bahsettiğiniz için, sonlu durumlu bir makinedir . Örneğin, bir web postası istemcisinin durumları "oturum açılmadı", "gelen kutusunda", "okuma mesajı", "yanıtı düzenleme" vb. Olabilir. Duruma bağlı olarak, ardından yanıt olarak, bir sonraki durumu seçin.


0

Desen gerçekten problemden kaynaklanmalı, ancak burada bazı seçenekler var:

Çoğunlukla devam eden geliştirme maliyeti / rahatsızlığıyla ilgileniyorsanız: Strateji Kalıbı (daha önce bahsedilmiş) - bileşen seviyesi arayüzlerini uygulamak için bunu kullanın ve belirli stratejileri (uygulamaları) çözmek için dinamik bir bağlama yöntemi kullanın. Bir IOC kapsayıcısı (bu günlerde Autofac'ı seviyorum) iyi çalışır.

Yukarıdaki desteği desteklemeniz gerekiyorsa artı ölçeklendirmeniz gerekiyor: Harita Küçültme (kimse .net için iyi bir m + r fx biliyor mu?).


-1

Web sayfasının ne kadar değiştiğine bağlı olarak bu zor olabilir. Bir DB'de standart düzenli ifadelerin bir listesini tutabilirsiniz ve daha sonra artık bir işe yaramadığında, bir kümeye çarpana kadar başkaları ile baz kümesinde döngü yapabilirsiniz. Sonra bunu ileride kullanmak üzere işaretlemek istersiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.