用Python实现监控小姐姐/小哥哥微博,了解一下?

开发工具

Python版本:3.6.4

相关模块:

DecryptLogin模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

一. 要求

实时监控某个微博用户有没有发新的微博。

二. 微博模拟登陆

调用我之前开源的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教程、资料、电子书加群:531509025免费获取

步骤二:实时监控

不断重复步骤一,获取被监控微博用户发布的所有微博,将获取的数据与上一次获取的被监控微博用户发布的所有微博数据进行对比,若有新的数据,则代表被监控微博用户发布了新的微博。

具体代码实现如下:

All done~完整源代码详见相关文件。

效果展示

运行方式:

效果展示:

因为需要输入账号密码等敏感信息,所以就不发演示视频了(打码麻烦)。就截个图吧:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要爬取微博,可以使用 Python 中的请求库(如 requests)和解析库(如 BeautifulSoup)来发送 HTTP 请求并解析返回的数据。 下面是一个示例代码,用于爬取微博的搜索结果页面: ```python import requests from bs4 import BeautifulSoup url = 'https://weibo.com/ajax/statuses/searchProfile' # 构造请求参数 params = { 'keyword': '关键词', # 要搜索的关键词 'page': 1, # 要获取的页数 } # 发送 GET 请求 response = requests.get(url, params=params) # 解析响应数据 soup = BeautifulSoup(response.text, 'html.parser') # 处理解析后的数据 # 可以使用 BeautifulSoup 提供的方法来提取需要的信息 # 示例:提取搜索结果列表中的用户名和用户ID results = soup.select('.person_list .person_name') for result in results: username = result.text.strip() user_id = result['usercard'][3:] print(f'用户名:{username},用户ID:{user_id}') ``` 在上述代码中,首先构造了请求参数,包括关键词和页数。然后使用 requests 库发送 GET 请求,并通过 BeautifulSoup 解析响应数据。 根据实际情况,可以使用 BeautifulSoup 提供的方法来提取需要的信息。示例代码中使用了 CSS 选择器来选择搜索结果列表中的用户名和用户ID,并打印出来。你可以根据自己的需求修改和扩展这部分代码。 需要注意的是,微博的页面结构可能会发生变化,所以在编写爬取代码时需要根据实际情况进行调整和适配。另外,爬取网站的数据时,需要遵守网站的使用规则和法律法规,不要进行非法的爬取行为。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值