前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微博全站爬虫修复更新啦!!!

微博全站爬虫修复更新啦!!!

作者头像
月小水长
发布2019-12-04 15:26:59
6030
发布2019-12-04 15:26:59
举报
文章被收录于专栏:月小水长月小水长
说在前面的话 距离开源微博全站爬虫过去已经快半个月了,陆陆续续收到了一些粉丝们的反馈,包括如何获取 cookies主题爬虫模块失效了,以至于后来整个爬虫失效,

说一声抱歉,当时那段时间我实在太忙,就没有立刻解决,但是记在备忘录上,但是今天下午终于可以有空闲了,就着手解决了这个问题;问题主要是由微博接口和网页结构的变化引起的,现将有关修改过程及结果修改如下;同时会详介绍如何获取 cookies 。

用户微博模块接口变化

原来的接口是

代码语言:javascript
复制
query_data = {
    'keyword': self.keyword,
    'suser': '找人'
}
search_response = requests.post(url='https://weibo.cn/search/', headers=self.headers, data=query_data,verify=False)

由于是抽取的类中的代码段,有些变量见名知意即可,不需要追究其值

后面我通过抓包发现,其接口变化为

代码语言:javascript
复制
query_data = {
    'keyword': self.keyword,
    'suser': '2'
}
search_response = requests.post(url='https://weibo.cn/find/user', headers=self.headers, data=query_data,verify=False)

可以发现,无论是接口的 URL 地址还是接口参数均有变化,但是看上去又不像是针对爬虫的,因为发爬的技术并没有升级,可能是业务逻辑的整合,只能这样猜测了。

主题微博模块接口变化

原来的接口是

代码语言:javascript
复制
res = requests.get(url='https://weibo.cn/search/mblog?keyword={}'.format(self.keyword), headers=self.headers,verify=False)

现改成了

代码语言:javascript
复制
data = {
    'page': 1,
    'keyword': self.keyword
}
res = requests.post(url='https://weibo.cn/search/mblog', headers=self.headers, data=data)

接口请求方式由 get 改成了参数隐秘性更好的 post。

如何获取 cookies

cookies 是什么,这里不引经据典了,一句话,cookies 是客户机(也就是你的 Chrome、FireFox 等浏览器)维持会话状态的一段字符串信息,微博就应用了这种技术。

怎么获取 cookies 呢?

打开微博登陆首页

代码语言:javascript
复制
https://passport.weibo.cn/signin/login?entry=mweibo&r=https%3A%2F%2Fweibo.cn%2F&backTitle=%CE%A2%B2%A9&vt=

F12 打开开发者工具(Mac OS 类似),并切换到 NetWork 标签页,如下

一切准备就绪后,点击页面上的登录按钮,按如下方式获得 cookies

如何获得最新代码

最新代码已更新在 Github:

https://github.com/Python3Spiders/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 月小水长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用户微博模块接口变化
  • 主题微博模块接口变化
  • 如何获取 cookies
  • 如何获得最新代码
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档