26 Ağustos 2013 Pazartesi

HTMLUNIT İLE UFAK PÜRÜZLERİ GİDERME


     HtmlUnit ile sitelerden verileri çekerken karşılaştığım bazı sorunları ve çözümlerini buraya yazıyorum ki benim gibi can çekişenler veya Türkçe kaynak bulmada sıkıntı yaşayanlara kolaylık olsun :D  Oluşturduğumuz senaryoya göre htmlunit 2.12 veya daha eski sürümleriyle sitelerden veri çekmeniz diğer bir deyimle Crawler etmeniz lazım.

Sorun 1 - webClient oluşturdunuz ve url i çekerken uzun sürdüğünü gördünüz. Öncelikle sorun url de mi yoksa tüm linkleri mi çekemiyor diye kontrol edip url leri değiştirerek htmlPage e çekme sürelerini karşılaştırın. Bir sitede en fazla 3 dakika diğerinde 33 dakika (ki şaka değil, tasdiklendi onaylandı) sürüyorsa anlayın ki o uzun süren sitede sorun var. Websitesini çekerken webClient.getPage(url) de execution time uzuyorsa ağdan kaynaklı bir sorundur. Debug esnasında webClient.getPage(url) satırındayken ağı değiştirirseniz hemen alt satıra geçecektir.

Sorun 2 - Siteden verileri çekerken div altındaki text i mesela saati görmüyorsa javascript i BaseCrawler ya da yazdığınız class da engellemişsinizdir. Çoğu site saat , tarih gibi verileri javascript ile getirmekte. Bunu da  webClient.setJavaScriptEnabled(false);  satırını true olarak düzeltmelisiniz. Ayrıca css i de kapattıysanız webClient.setCssEnabled(false) ise onu da true olarak değiştirmeyi unutmayın.


Hiç yorum yok:

Yorum Gönder