由于时间关系,我不知道下一集会什么时候写,但是欢迎大家交流。
很多网络爬虫新手肯定会遇到的2个问题:执行JavaScript和处理Ajax请求。
我这里以HtmlUnit框架为例。
好了,我先贴一些关键配置的代码,使得我们模拟的浏览器可以执行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。