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 😀  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.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s