用HtmlUnit爬取淘宝数据

qq_15710293 qq_15710293 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
http://jiuxu.taobao.com/

比如我想爬取上面页面的所有宝贝链接
如<a href="http://item.taobao.com/item.htm?spm=a1z10.1.w5003-8452167994.1.fVp17O&id=40416742109&scene=taobao_shop" target="_blank" data-spm-wangpu-module-id="5003-8452167994" data-spm-anchor-id="a1z10.1.w5003-8452167994.1"><img src="http://img02.taobaocdn.com/imgextra/i2/50090008/TB2j6UraXXXXXaUXpXXXXXXXXXX_!!50090008.jpg" width="621" height="442" border="0" alt=""></a>


我想要http://item.taobao.com/item.htm?spm=a1z10.1.w5003-8452167994.1.fVp17O&id=40416742109&scene=taobao_shop 这个内容

HttpUtils没有渲染页面功能所以直接就放弃了(而且的确也抓不出我想要的内容)
在使用htmlUnit渲染页面的时候发现获得tbody内的信息不完整
原因经过查询相关资料大致了解:因为有的js内容需要浏览器滚动下拉才会加载

请问我要如何模拟浏览器的滚动下拉来加载页面上所有的js?

参数设置如下:
// 1 启动JS
webClient.getOptions().setJavaScriptEnabled(true);
// 2 禁用Css,可避免自动二次請求CSS进行渲染
webClient.getOptions().setCssEnabled(false);
// 3 启动客戶端重定向
webClient.getOptions().setRedirectEnabled(true);

// 4 js运行错誤時,是否拋出异常
webClient.getOptions().setThrowExceptionOnScriptError(false);
// 5 设置超时
webClient.getOptions().setTimeout(50000);

HtmlPage htmlPage = webClient.getPage(url);
// 等待JS驱动dom完成获得还原后的网页
webClient.waitForBackgroundJavaScript(10000);
// 网页內容
/* System.out.println(htmlPage.asXml()); */
webClient.closeAllWindows();
return htmlPage.asXml();


然后http://zarakara.tmall.com/这个页面用上述方法根本渲染不出所需的宝贝链接

已经尝试过各种方法包括python下面的phantomjs+casperjs 虽然可以解析 但是依然无法加载下面的内容
还有什么百度蜘蛛 谷歌蜘蛛。
...全文
评论 7
收藏 已收藏
分享
返回顶部
qq_15710293
Java 51,407 成员 86,129 内容