2013-06-06 28 views
2

我一直在做网页抓取工作,现在总是被卡在使用javascript加载数据的网页上。
我在使用HTML单元的这样的页面上有一定程度的成功,但有时Htmlunit会抛出这些不寻常的异常,并最终无法加载页面。那么我不得不说这是一个使用HTML单元的命中和错过。
有没有具体的方法来实现它?
但就我而言,我还没有深入研究HTML单元。那么你的建议是什么?我应该坚持HTMLunit还是有其他好方法(库)来实现JavaScript处理?
使用javascripts在网页上抓取网页

为了记录我使用Java作为我的主要语言。

+0

您可以使用类似[phantom.js(HTTP: //phantomjs.org/)来重建实际的页面,然后使用它来抓取。 – Sirko

+0

希望下面的链接帮助.. http://stackoverflow.com/questions/5561950/how-to-scrape-https-javascript-web-pages http://stackoverflow.com/questions/260540 /你怎么做屏幕刮阿贾克斯页 http://stackoverflow.com/questions/16762127/scraping-data-from-website-that-uses-javascript –

回答

1

我一直在网上与现在的HtmlUnit报废了2 - 3年,也有一些配置,可以帮助你处理负载问题:

webClient.setAjaxController(new NicelyResynchronizingAjaxController()); 
// Edit some js, prior to execution 
webClient.setScriptPreProcessor(new JavascriptPreProcessor() { ... }); 
// Avoid throwing errors on JS execution 
webClient.setThrowExceptionOnScriptError(false); 
// Avoid throwing errors because of wrong response codes 
webClient.setThrowExceptionOnFailingStatusCode(false); 
+0

好吧,我一直在使用这些配置我自己,并在一定程度上运作良好,但偶尔有让我失望的一些网站! 。反正谢谢! – haedes

+0

很抱歉听到这个消息,也许我们可以在这种情况下找到解决方案。 – brnfd