python实现微博超话一键签到点赞评论

用python实现微博超话一键签到点赞评论

不管电影拍得怎么样,《诛仙》这本书一直是我心中的经典,而书中碧瑶一直是我最喜欢的小说人物,最近发现了她竟然有属于自己的超话,心血来潮,决定弄一个一键式的超话脚本,下面正式开始干活。
Web式脚本自然需要抓包了,在这里给大家推荐下我用的抓包软件fiddler,下载网址:www.telerik.com/fiddler

登陆

想要对超话动手,自然是要先登陆的,关于微博模拟登陆的教程网上不在少数,需要进行三次get/pos,实际操作比较复杂,我在此简述几句:
首先构造自己的登陆网址

// An highlighted block
url='http://login.sina.com.cn/sso/prelogin.php?entry=sso&
callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&
client=ssologin.js(v1.4.4)%' +username
其中username为你自己的微博账号,对其进行get请求,得到返回的数据包为
// An highlighted block
sinaSSOController.preloginCallBack({
"retcode":0,
"servertime":1569158953,
"pcid":"tc-955f9a8babda70af870d54e2a91914c39141",
"nonce":"J0P7GZ",
"pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443",
"rsakv":"1330428213",
"exectime":10})

==其中servertime,nonce ,pubkey,rsakv为有用信息,并且每次不一样,需要用正则提取.
之后将账号密码加密,post到http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.19)
从返回信息中得到ticket
最后将

// An highlighted block
		params = {
		    "callback": "sinaSSOController.callbackLoginStatus",
		    "client": "ssologin.js(v1.4.18)",
		    "ticket": ticket,
		    "ssosavestate": int(time.time()),
		    "_": int(time.time() * 1000),
		}

get到https://passport.weibo.com/wbsso/login,查看返回信息,result=true,则登陆成功。

签到

登陆成功后就比较简单了,打开fiddler,在你想要操作的超话点击签到,
会发现这样一个数据包
很明显是发送了get请求,我们将网址复制下来

https://weibo.com/p/aj/general/button?ajwvr=6&api=http://i.huati.weibo.com/aj/super/checkin&texta=%E5%B7%B2%E7%AD%BE%E5%88%B0&textb=%E5%B7%B2%E7%AD%BE%E5%88%B0&status=1&id=1008082ba2304bd954b238b1684564e6818499&location=page_100808_super_index&timezone=GMT+0800&lang=zh-cn&plat=Win32&ua=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64;%20rv:69.0)%20Gecko/20100101%20Firefox/69.0&screen=1920*1080&__rnd=1569159499081

通过分析可发现,其中id=1008082ba2304bd954b238b1684564e6818499字段确定签到的超话是什么,其他信息无关紧要。
通过微博对此url发送get请求后,我们发现收到回复:“\u4eca\u5929\u5df2\u7b7e\u5230 (382004)“
Unicode解码以后得到==“今天已签到“==说明我们成功了。

点赞

之后便是点赞和评论,熟悉微博的都知道,每条微博背后都有一个唯一的mid来确定其身份,
我们通过像碧瑶超话https://weibo.com/p/1008082ba2304bd954b238b1684564e6818499/super_index
发送get请求,再通过正则表达式匹配,可以获取到主页所有微博的mid,有了mid以后,打开fiddler,点赞一条微博,我们可以看到这样一个数据包
python实现微博超话一键签到点赞评论_第1张图片
遍历我们刚刚得到的mid的list,分别发送post请求于
https://weibo.com/aj/v6/like/add?ajwvr=6&__rnd+时间戳。
再打开我们的微博。惊喜吗?成功了,所有首页的微博都有你的点赞!!

评论

评论同理,我们打开fiddler,尝试评论一条微博,

可以抓到这样一个数据包,分析其中内容。
python实现微博超话一键签到点赞评论_第2张图片mid自然就是微博的标识,uid这里提一下,就是每个微博用户的userid,这个大家从电脑查看自己的微博主页,https://weibo.com/5053812599/我的主页就是这个其中5053812599就是我的uid
Content自然就是评论内容
其他没有什么可多说的,构造post数据,发送。
怎么样?超话首页是不是都评论过了?

小结

至此,简单的功能实现就结束了,接下来比如说时间间隔,ui,以及一些其他设置,大家自行发挥吧,有疑问的可以发邮件到[email protected]
希望可以帮到你
同时exe可执行文件已经上传到我的github,地址为:https://github.com/1210612175/python-
希望可以和大家互相学习讨论。

你可能感兴趣的:(python)