微博数据爬虫——获取用户微博相关信息(四)

任务:给定u_id,获取用户每条微博的mid、发布时间、照片数、@数、链接数

1.获取微博信息

查看网页源代码,发现数据保存在js中

利用正则匹配可以实现获取单条微博全部信息

add = urllib.request.Request(url="https://weibo.com/u/%s?is_all=1" % o_id, headers=headers)
r = urllib.request.urlopen(url=add, timeout=10).read().decode('utf-8')
page_id = re.findall(r'\$CONFIG\[\'page_id\']=\'(\d+)\'',r)[0]
domain = re.findall(r'\$CONFIG\[\'domain\']=\'(\d+)\'',r)[0]
forums = re.findall(r'<div action-data=\\"cur_visible=0\\"   (.*?)<div node-type=\\"feed_list_repeat\\"', r)

由于微博使用动态加载技术,一次刷新不会将所有数据显示,分析网络,可发现ajax交互接口

domain:用户所在域

id:用户的page_id

page:指当前微博页数

pre_page:当为0时为初始时的网页数据,为1时为后续动态加载网页数据

pagebar:指数据块,为0或1,共动态加载两次

is_all:当为1时表示显示全部,默认为0显示热门

使用如下方法获取:

url = "https://weibo.com/p/aj/v6/mblog/mbloglist?domain=%s&id=%s&page=1&pre_page=1&pagebar=%d&is_all=1" % (domain,page_id,i)
add = urllib.request.Request(url=url, headers=headers)
r = urllib.request.urlopen(url=add, timeout=10).read
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值