专栏首页月小水长微博全站爬虫修复更新啦!!!

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

说在前面的话 距离开源微博全站爬虫过去已经快半个月了,陆陆续续收到了一些粉丝们的反馈,包括如何获取 cookies主题爬虫模块失效了,以至于后来整个爬虫失效,

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

用户微博模块接口变化

原来的接口是

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

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

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

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 地址还是接口参数均有变化,但是看上去又不像是针对爬虫的,因为发爬的技术并没有升级,可能是业务逻辑的整合,只能这样猜测了。

主题微博模块接口变化

原来的接口是

res = requests.get(url='https://weibo.cn/search/mblog?keyword={}'.format(self.keyword), headers=self.headers,verify=False)

现改成了

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 呢?

打开微博登陆首页

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/

本文分享自微信公众号 - 月小水长(inspurer),作者:BuyiXiao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 500行python代码打造刷脸考勤系统

    “员工刷脸考勤”系统,采用python语言开发,可以通过摄像头添加员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么样的数据来标识每一个员工的面部信息...

    月小水长
  • 用户、话题、评论一网打尽,分享一个最强微博爬虫

    微博向来是一个极好的吃瓜圣地,为了获取微博上行行色色的数据,微博相关的爬虫也是层出不穷,因为无论是运营者还是数据分析从业者都或多或少需要微博数据,我的许多朋友也...

    月小水长
  • 自己动手打造mini型QQ(一):动手实现局域网仿QQ互联

    这个项目的由来是来自计算机网络课程学习的大作业,基于socket套接字写一个超小型的QQ,晚上8点到12点的奋战,编码工作大致做完了,GUI框架也有了,特此分享...

    月小水长
  • Magicodes.WeiChat——媒体资源选择组件之media-choice(开源)

    mediaType:默认选择的媒体类型,其中(0:图片;1,语音;2,视频;5,图文)

    雪雁-心莱科技
  • 梯度提升树,分手快乐~

    GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT 算的上 TOP3 的算法。

    double
  • 机器学习--决策树(ID3)算法及案例

    1 基本原理 决策树是一个预测模型。它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,每个分支路径代表某个可能的属性值,每个叶结点...

    机器学习AI算法工程
  • Pytest+Allure+Jenkins接口自动化项目实战(一)

    经过一周多时间,基于python+pytest+excel+allure框架的接口自动化测试初版已基本实现,包括基本配置读取、用例读取、用例执行...

    Criss@陈磊
  • 在ABAP里模拟实现Java Spring的依赖注入

    Dependency Injection- 依赖注入,在Java Spring框架中有着广泛地应用。通过依赖注入,我们不必在应用代码里繁琐地初始化依赖的资源,非...

    Jerry Wang
  • 为什么一个参与其中的用户社区可以开发出更好的软件[Openstack]

    想象一下,发布一个基于开源软件的大型新基础设施服务,却发现您部署的产品发展得如此之快,以至于您发布的版本的文档不再可用。在布隆伯格,我们在部署OpenStack...

    用户6667850
  • PyTorch最佳实践,怎样才能写出一手风格优美的代码

    虽然这是一个非官方的 PyTorch 指南,但本文总结了一年多使用 PyTorch 框架的经验,尤其是用它开发深度学习相关工作的最优解决方案。请注意,我们分享的...

    机器之心

扫码关注云+社区

领取腾讯云代金券