如何爬取网页中js动态生成的数据

 我来答
百度网友dc3f1eb
2017-10-10 · TA获得超过274个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:123万
展开全部
String url = "http://xinjinqiao.tprtc.com/admin/main/flrpro.do";
try {
    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
    //设置webClient的相关参数
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setCssEnabled(false);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    //webClient.getOptions().setTimeout(50000);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    //模拟浏览器打开一个目标网址
    HtmlPage rootPage = webClient.getPage(url);
    System.out.println("为了获取js执行的数据 线程开始沉睡等待");
    Thread.sleep(3000);//主要是这个线程的等待 因为js加载也是需要时间的
    System.out.println("线程结束沉睡");
    String html = rootPage.asText();
    System.out.println(html);
} catch (Exception e) {
}
数阔八爪鱼采集器丨RPA机器人
2021-07-28 · 前往八爪鱼RPA应用市场,免费获取机器人
数阔八爪鱼采集器丨RPA机器人
向TA提问
展开全部
现在网页大多是动态网页,尤其是内容丰富,值得爬取的网站,几乎无一例外是动态的,比如狗东、淘宝和知乎,而且还有不少反爬手段,这些都大大提升了爬虫难度,尤其是淘宝,为了反爬不惜影响到正常用户使用。
面对这些动态网页,通常的手法都是监听、抓包、分析js文件,这些都不简单,而且还麻烦。
对于这些网站,有一款神器可以实现降维打击,那就是Google出品的爬虫工具 Puppeteer。它本质上是一个chrome浏览器,只不过可以通过代码进行各种操控。
比如模拟鼠标点击、键盘输入等等,有点像按键精灵,而网页很难分清楚这是人类用户还是爬虫,所以限制也就无处谈起。
这不,即使js文件弄得再复杂也好,压根不用看,模仿用户操作就行,直接获取信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式