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

在做人人网页的爬虫时,爬取人人新鲜事搜索页面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返回了数据,请求的真正的链接自然也和浏览器中所看到的不一样。如下图:

161644_0IBl_1766462.jpg

查看响应的内容:

162001_BMhM_1766462.jpg


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

之后只要把原来爬取HTML网页的java爬虫代码的url改成这个真正的请求地址就好了(而不是在浏览器地址栏明眼看到的),其他的都不用变

转载于:https://my.oschina.net/u/1766462/blog/647387

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值