怎么抓取js执行后的页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么抓取js执行后的页面相关的知识,希望对你有一定的参考价值。

try
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
//设置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)
参考技术A httpunit。jar ——》java的网络爬虫包

怎么爬取网页的动态内容,很多都是js动态生

抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。 参考技术A 获取不到动态加载的内容,除非内容直接在html页面了,这就是为什么动态加载的内容,js动态生成的内容不利于seo的原因

以上是关于怎么抓取js执行后的页面的主要内容,如果未能解决你的问题,请参考以下文章

如何用python爬取js动态生成内容的页面

js怎么控制操作里的a标签按钮在执行判断后的某种条件下设为不可用,就是无法点击a标签按钮。

phantomjs 如何获得 JS渲染后的页面?

Java_爬虫,如何抓取Js动态生成数据的页面?

直接在Chrome里抓取数据

为啥浏览器可以保存网页中js动态内容,用java编写的爬虫却无法抓取