微博超话自动签到脚本
  • 2020-08-01


前言

今天周末没在宿舍,感觉之后都要在公司度过日子。

下午闲来无事做了个脚本,可以自动签到微博的超级话题。对我来说没什么用,要是饭圈的妹妹还会用python的话那实在是太好了。


代码

import requests
import json


login_url = "https://passport.weibo.cn/sso/login"
headers = {
    'Referer': 'https://passport.weibo.cn/signin/login?entry=mweibo&r=http%3A%2F%2Fm.weibo.cn',
    'Content-Type': 'application/x-www-form-urlencoded'
}
data = {
    'username':'',
    'password':''
}

res = requests.post(login_url,data=data,headers=headers)
if res.json()['retcode'] != 20000000:
    print('登录失败,错误原因为:{}'.format(res.json()['msg']))
else:
    cookie = res.headers['Set-Cookie']  # 获取cookie
    print('登陆成功!')

dd=cookie.split(";")
use_cookie=dd[0].split("=")[1]
burp0_url = "https://m.weibo.cn:443/api/container/getIndex?containerid=100803_-_page_my_follow_super"
burp0_cookies = {"SUB": use_cookie}
burp0_headers = {"Connection": "close", "Cache-Control": "max-age=0"}
d=requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)
datas=d.text
t=json.loads(datas)

print('--------------')
print('正在获取超话列表.....')
print('管理超话:'+str(len(t['data']['cards'][0]['card_group'])-1)+'个')
print('管理以下超话:')
for i in range(1,len(t['data']['cards'][0]['card_group'])):
    print(t['data']['cards'][0]['card_group'][i]['title_sub']+"||"+t['data']['cards'][0]['card_group'][i]['desc2'])
print('--------------')
print('关注超话:'+str(len(t['data']['cards'][1]['card_group'])-2)+'个')
print('关注以下超话:')
for i in range(1,len(t['data']['cards'][1]['card_group'])-1):
    print(t['data']['cards'][1]['card_group'][i]['title_sub'])

burp0_url = "https://weibo.com:443/p/aj/general/button?api=http://i.huati.weibo.com/aj/super/checkin&id=100808715f389227470a9781a385a737afdcdb"
burp0_cookies = {"SUB": use_cookie}
burp0_headers = {"GET /p/aj/general/button?api=http": "/i.huati.weibo.com/aj/super/checkin&id=100808715f389227470a9781a385a737afdcdb HTTP/1.1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0", "Connection": "close"}
f=json.loads(requests.get(burp0_url,cookies=burp0_cookies).text)['msg']
print(f)

这里没有对超话id进行遍历在进行签到操作,我拿了其中一个超话id就直接签到了。懒得写了,你如果愿意可以去前面的那个t数组中去遍历存储超话id,再循环签到即可。

效果

5f252a1837193.png