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

很多网站是用js或Jquery 生成数据的,到后台获取到数据以后,用 document.write()或者("#id").html="" 的方式 写到页面中,这个时候用浏览器查看源码是看不到数据的。

如果是ajax加载的通过浏览器找到接口数据直接采集接口返回的内容。如果在页面上已经存在的,自己正则提取下数据

可以用PhantomJS等webdriver来抓取ajax的数据
http://blog.csdn.net/eq___/article/details/52721732

既然是生成的页面,直接拿数据格式(网页上一定有,仔细看),实在不行自己定义数据格式(可能会漏刀),能找到借口的直接拿借口数据。

ajax返回的是HTML,那就和a标签是一样的。访问地址后提出其中的地址就OK了。差别在于提取地标签中的地址与ajax地址是不一样的

有两种方法:

一种方法就是直接读取ajax返回的内容,一般是JSON数据,有很多工具可以解析JSON。

第二种方法就是解析JS,通过模拟浏览器来抓取数据,一般的工具有selenium、PhantomJS等。

建议第一种,比较方便快捷;第二种比较慢,还要解析HTML。关键还是看自己需求了。

使用java模拟访问,将返回的数据进行处理