1. 程式人生 > >基於HtmlUnit網路爬蟲(一)

基於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。