基於HtmlUnit網路爬蟲(一)
由於時間關係,我不知道下一集會什麼時候寫,但是歡迎大家交流。
很多網路爬蟲新手肯定會遇到的2個問題:執行JavaScript和處理Ajax請求。
好了,我先貼一些關鍵配置的程式碼,使得我們模擬的瀏覽器可以執行CSS和JavaScript。
BrowserVersion bv = BrowserVersion.FIREFOX_24;
WebClient client = new WebClient(bv);
WebClientOptions options = client.getOptions();
options.setCssEnabled(true);
options.setPopupBlockerEnabled(true
//假如要執行JS,此處很重要
options.setJavaScriptEnabled(true);
options.setRedirectEnabled(true);
options.setThrowExceptionOnFailingStatusCode(true);
options.setThrowExceptionOnScriptError(false);
options.setAppletEnabled(true);
options.setTimeout(30000);
//這行程式碼是針對https的網站
options.setUseInsecureSSL(true);
options.setActiveXNative(true
options.setGeolocationEnabled(true);
options.setPrintContentOnFailingStatusCode(true);
client.waitForBackgroundJavaScript(30000);
client.getCookieManager().setCookiesEnabled(true);
//執行JS,此處配置很重要
client.setAjaxController(new NicelyResynchronizingAjaxController());
好了,各位可以參照一些網上的DEMO,假如不能順利通過測試,建議先修改一下自己的配置。下一節我會寫一些怎麼抓取網頁的DEMO,以及如何執行JavaScript。