您的位置:首页 > Web前端 > JavaScript

java爬取动态加载/js返回数据的网页的源代码

2016-03-25 00:00 357 查看
在做人人网页的爬虫时,爬取人人新鲜事搜索页面http://browse.renren.com/s/all?from=homeindex&q=%E6%97%A0%E8%81%8A&itab=11#qt=%E6%97%A0%E8%81%8A/tindex=11/curpage=4的源码时,改变curpage=后面的数字后爬取的内容竟然都一样,每次都是第一页。在不同的页数右键“查看页面源代码”发现确实都是第一页的新鲜事内容,没有变化。

然后火狐右键“查看元素”,发现在每次翻页时,只有新鲜事部分的HTML标签变化了(闪现橙色),估计是用了JAVASCRIPT动态更新/加载数据,而不是重新请求了一个新的网址链接

知道了问题所在后,开始百度,找到了这样一篇神文章: Java抓取网页数据(原网页+Javascript返回数据)


有时候网站为了保护自己的数据,并没有把数据直接放在网页源码中返回,而是采用异步的方式,用JS返回数据,这样可以避免搜索引擎等工具对网站数据的抓取。

按照博文的方法,一步一步,使用火狐查看元素里的“网络”进行分析,发现果不其然,在换页的时候,是异步采用js返回了数据,请求的真正的链接自然也和浏览器中所看到的不一样。如下图:



查看响应的内容:



果然!就是想要找的内容!总共10条新鲜事,一条不差 而且正是我们想要的页码的

之后只要把原来爬取HTML网页的java爬虫代码的url改成这个真正的请求地址就好了(而不是在浏览器地址栏明眼看到的),其他的都不用变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息