一篇文章教会你使用Python定时抓取微博评论
【Part1——理论篇】
试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存。首先从微博api寻找抓取评论的接口,如下图所示。
但是很不幸,该接口频率受限,抓不了几次就被禁了,还没有开始起飞,就凉凉了。
接下来小编又选择微博的移动端网站,先登录,然后找到我们想要抓取评论的微博,打开浏览器自带流量分析工具,一直下拉评论,找到评论数据接口,如下图所示。
之后点击“参数”选项卡,可以看到参数为下图所示的内容:
可以看到总共有4个参数,其中第1、2个参数为该条微博的id,就像人的身份证号一样,这个相当于该条微博的“身份证号”,max_id是变换页码的参数,每次都要变化,下次的max_id参数值在本次请求的返回数据中。
【Part2——实战篇】
有了上文的基础之后,下面我们开始撸代码,使用Python进行实现。
1、首先区分url,第一次不需要max_id,第二次需要用第一次返回的max_id。
2、请求的时候需要带上cookie数据,微博cookie的有效期比较长,足够抓一条微博的评论数据了,cookie数据可以从浏览器分析工具中找到。
3、然后将返回数据转换成json格式,取出评论内容、评论者昵称和评论时间等数据,输出结果如下图所示。
4、为了保存评论内容,我们要将评论中的表情去掉,使用正则表达式进行处理,如下图所示。
5、之后接着把内容保存到txt文件中,使用简单的open函数进行实现,如下图所示。
6、重点来了,通过此接口最多只能返回16页的数据(每页20条),网上也有说返回50页的,但是接口不同、返回的数据条数也不同,所以我加了个for循环,一步到位,遍历还是很给力的,如下图所示。
7、这里把函数命名为job。为了能够一直取出最新的数据,我们可以用schedule给程序加个定时功能,每隔10分钟或者半个小时抓1次,如下图所示。
8、对获取到的数据,做去重处理,如下图所示。如果评论已经在里边的话,就直接pass掉,如果没有的话,继续追加即可。
这项工作到此就基本完成了。
【Part3——总结篇】
这种方法虽然抓不全数据,但在这种微博的限制条件下,也是一种比较有效的方法。 最后如果您需要本文代码的话,请在后台回复“微博”二字,觉得不错,记得给个star噢~
看完本文有收获?请转发分享给更多的人
IT共享之家
入群请在微信后台回复【入群】
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何在 CentOS 8 上安装 TensorFlow
本文最先发布在: https://www.itcoder.tech/posts/how-to-install-tensorflow-on-centos-8/ TensorFlow是一个由Google 开发的,关于机器学习的开源平台。它可以在不同设备的 CPU 或者 GPU 上运行,并且它被很多组织所使用,其中包括Twitter, PayPal, Intel, Lenovo, 和 Airbus. TensorFlow 可以被作为系统范围内的安装,在 Python 虚拟环境中,作为一个 Docker 容器,或者和 Anaconda一起安装。 本文解释如何在 CentOS 8 上安装 TensorFlow。 TensorFlow 同时支持 Python 2 和 3。我们将会使用 Python 3 并且在一个虚拟环境中安装 TensorFlow。 一个虚拟环境允许你在一台电脑上拥有多个不同且互相隔离的 Python 环境,并且急于每个项目,安装模块的指定版本,而不用担心它会影响到其他的项目。 一、 在 CentOS 上安装 TensorFlow 与其他 Linux 发行版不一样,Python ...
- 下一篇
gtoken v1.3.15 发布,基于 GoFrame 的 token 插件
本次更新: 1. gf升级为V1.12.1 2. 加入全局拦截支持,方便调整认证和其他中间件执行顺序 // 启动gtoken gtoken := >oken.GfToken{ LoginPath: "/login", LoginBeforeFunc: loginFunc, LogoutPath: "/user/logout", AuthPaths: g.SliceStr{"/user", "/system"}, // 这里是按照前缀拦截,拦截/user /user/list /user/add ... GlobalMiddleware: true, // 开启全局拦截,默认关闭 } gtoken.Start() gtoken介绍 基于gf框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,并支持集群模式;使用简单,大家可以放心使用; 支持单机gcache和集群gredis模式; # 配置文件 # 缓存模式 1 gcache 2 gredis cache-mode = 2 支持简单token认证 加入缓存...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路