htmlunit抓取动态网页(htmlunit网络工具一个没有没有 )

优采云 发布时间: 2021-10-14 16:21

  htmlunit抓取动态网页(htmlunit网络工具一个没有没有

)

  1:背景

  我想用jsoup抓取一个页面,但是我抓取的数据总是不完整的,然后我发现页面执行了js之后有一些数据渲染在页面上,也就是说,它只在执行js后的数据页。数据会显示出来,但是jsoup无法实现执行页面的js。

  2:解决

  搜索后发现htmlunit网络工具可以执行js,相当于没有页面的浏览器。解决办法是先用htmlUnit发送网络请求,执行js获取页面,然后用jsoup转换成Document页面对象。然后用jsoup分析页面读取数据。

  3: htmlUnit 发送请求

  4:返回的Document对象交给jsoup处理

  我这里只做了一个简单的输出,我检查了数据是否全部渲染完毕。

   1 Document doc=getDocument();

2 Element table=doc.select("table.table.table-bordered.aggregate_table").get(0);//获取到表格

3 Element tableContext=table.getElementsByTag("tbody").get(0);

4 Elements contextTrs=tableContext.getElementsByTag("tr");

5 System.out.println(contextTrs.size());

6

7

8 String context=doc.toString();

9 OutputStreamWriter pw = null;

10 pw = new OutputStreamWriter(new FileOutputStream("D:/test.txt"),"GBK");

11 pw.write(context);

12 pw.close();

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线