腾讯微博抓取--细节(2)

今天在进一步做腾讯微博内容抓取的时候,如何循环抓取多页的内容是个小难点。新浪的内容分页主要是三页式异步加载,而腾讯的分为两种方式:一种是常规的1,2,3,4,....下一页的方式,二种是,类似于新浪分页的三段式分页加载。在此主要说下腾讯微博的内容分页采集问题。

     1、若是常规的1,2,3,4,....下一页的方式,此种较简单,只需要反复使用首页的抽取模式即可,无需重新抽取的请求URL和正则模板。

     2、若为滚动的3页氏的话,腾讯还是做了两点与新浪的不同,下面我们从请求的URL中找到解决方法。

        首页:http://t.qq.com/erliang20088?preview
        第2页:http://api1.t.qq.com/asyn/index.php?&time=1352962925&page=2&id=147979107428584&u=erliang20088&apiType=8&apiHost=http%3A%2F%2Fapi.t.qq.com&_r=1354290218617
       第3页:http://api1.t.qq.com/asyn/index.php?&time=1347802546&page=3&id=74429075748631&u=erliang20088&apiType=8&apiHost=http%3A%2F%2Fapi.t.qq.com&_r=1354290226952
       第4页:http://api1.t.qq.com/asyn/index.php?&time=1343908544&page=4&id=110770072108318&u=erliang20088&apiType=8&apiHost=http%3A%2F%2Fapi.t.qq.com&_r=1354290236232

      很容易发现其中的几个参数,但是这几个参数是如何取值的呢?

      像以前的几个请求中,time参数往往无用可不设或随意设置,但此处的ajax获取是不行的,经过几次尝试你会发现,这里的time传值往往都会返回值,但是返回的值却不是正常想要的值。这说明该值的传递是要遵守规则。经过反复的实验发现,

     (重点**)其实这里的time和id都是取自于当上一页中,最后一条显示的微言内容的time和id参数,当如实模拟传递之后,微博内容全部准确,反复测试依然完全正确,得到正常答案。

      

     3、是如何解析ajax异步请求回来的数据?

如图,很显然这里返回的是一个json串,其内容部分info属性对应的json中的talk属性中,其实质数据内容是一个JSONArray,只需经过两步json解析即可获得每页15条记录的详细内容及相关参数,如转发、评论等。info对应的json中也包含了hasNext属性,用来标志是否还有“更多”页等参数。

 

至此,腾讯微博关于微博内容的全量翻页获取的关键问题都已解决,希望对学习中的同志们有帮助。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值