近期,小伙说他女朋友可以实时监控了自己的微博一更新动态,到最后被现场抓了都是一脸懵逼;
于是他找上我,问我他女朋友是如何得知自己微博一更新动态,想弄明白到底是怎么回事;
这必须得安排上啊,让我们愉快地开始吧
入门Python其实很容易,但是我们要去坚持学习,每一天坚持很困难,我相信很多人学了一个星期就放弃了,为什么呢?其实没有好的学习资料给你去学习,你们是很难坚持的,小编收集的Python入门学习资料,文末即可免费领取!希望对你们有帮助
下面看具体操作方式:
相关工具
Python版本:3.6.4
相关模块:
DecryptLogin模块;
以及一些Python自带的模块。
一. 项目要求
实时监控某个微博用户有没有发新的微博。
二. 微博模拟登陆
调用我之前开源的DecryptLogin库就可以很方便地实现微博的模拟登陆了。
模块地址:
https://github.com/CharlesPikachu/DecryptLogin
三. 微博监控
1. 确定待监控用户
(1)指定用户id进行微博监控
这个很简单,在浏览器里登陆微博移动端,然后点进想要监控的用户的微博主页,就可以找到该用户的用户id了,例如下图所示:
(2)监控关注列表中的某用户
简单抓包可以发现:
只要不断请求(page每次加1)上图中红框框出的链接直到返回的数据为空就可以获取登录用户的关注列表中的所有用户信息了,具体代码如下:
然后用户自主选择想要监控的微博用户:
用户选择完毕后,利用正则表达式获取该微博用户的用户id:
2. 实现微博监控
步骤一:获取被监控微博用户发布的所有微博
经抓包分析与实际测试,获取被监控微博用户发布的所有微博流程如下:
① 获取第一个containerid
登录状态的session请求用户主页后通过正则表达式从session的cookies中提取。
② 获取第二个containerid
利用第一个containerid、user_id请求:
https://m.weibo.cn/api/container
/getIndex?uid={}&luicode=10000011&lfid=231093_-_
selffollowed& type=uid&value={}&containerid={}即可获取第二个containerid。
③ 获取被监控微博用户发布的所有微博数据
利用第二个containerid、user_id请求:
https://m.weibo.cn/api/container/getIndex?
uid={}&luicode=10000011&lfid=231093_-_selffollowed&
type=uid&value={}&containerid={}
即可获取被监控微博用户发布的所有微博数据。
步骤二:实时监控
不断重复步骤一,获取被监控微博用户发布的所有微博,将获取的数据与上一次获取的被监控微博用户发布的所有微博数据进行对比,若有新的数据,则代表被监控微博用户发布了新的微博。
具体代码实现如下:
效果展示
运行方式:
效果演示:
最后
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!(文末领取)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。(文末领读者福利)
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 (文末领取哦)