前言
最近准备打算玩玩微博,关注了几个大V。但平时都习惯用微信了,于是就想着怎么将微博的文章实时同步到微信,于是就有了下面这一系列操作。
步入正题
要想实现上述过程,总共包含以下几个步骤:
1.登录手机网页版微博
2.获取被监听博主的发文信息
3.循环监听发文信息
实现步骤
1.首先我们登录手机网页版微博
地址:https://m.weibo.cn/。此处我们选择:账号密码登陆。
正确输入账号密码后,我们用抓包工具(Fiddler)分析一下
发现只要用户名和密码正确,既返回200且json部分的retcode会返回20000000
登录部分代码
def login(self, username, password):
"""
登录新浪
:param username:
:param password:
:return:
"""
# 登录URL
login_url = 'https://passport.weibo.cn/sso/login'
# 请求数据
data = {
'username': username,
'password': password,
'savestate': 1,
'entry': 'mweibo',
'mainpageflag': 1
}
try:
r = self.session.post (login_url, data=data, headers=self.headers)
if r.status_code == 200 and json.loads (r.text)['retcode'] == 20000000:
self.echoMsg ('Info', '登录成功! UserId:' + json.loads (r.text)['data']['uid'])
else:
self.echoMsg ('Error', '登陆失败!')
sys.exit ()
except Exception as e:
self.echoMsg ('Error', e)
sys.exit ()
2.获取某个博主的发文信息
登录完成之后,我们搜索想要监听的博主。
注意,上面红色圈出的部分是该用户的userid。后面会用到。
打开开发者工具,我们在network下可以看到下面两个请求。
对应url和返回数据分别为:
https://m.weibo.cn/api/container/getIndex?uid=1195242865&luicode=10000011&lfid=100103type=1&q=杨幂&type=uid&value=1195242865&containerid=1005051195242865
{
"ok":1,
"data":{
"avatar_guide":[