300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python之微博批量关注 互粉

python之微博批量关注 互粉

时间:2018-11-15 03:37:29

相关推荐

python之微博批量关注 互粉

想做自己的微博自媒体,微博大v,刚开始我们肯定要有粉丝才可以,但是我们上哪里去找粉丝那?花钱买,都是僵尸粉,也就是凑凑数而已,所以我们需要加入互粉群,一个群大概1000人,我们每天关注的人上限大概500个,我们总不能一个一个点进去关注吧,好累的,所以我要批量关注,市面上很多批量关注的软件不太敢用还是自己动手写吧。

思路如下:1.登录我们自己的微博账号,加入互粉群

2.我们需要获取互粉群里大量用户id;

3.我们需要调用微博关注接口

说干就干

步骤一,前提是我们已经加了一个互粉群

我们用电脑登陆微博这类推荐用谷歌浏览器,按F12进入调试模式,如图

这个时候我们应该会看到全是白色的界面,这个时候我们需要在地址栏替换地址为:/

或者 自己删除地址栏u/2109066367/.... 别忘了敲个回车

我们会可以切换到消息页面并且点进去,如图,

进去群信息之后点击更多成员,接下来重点来了*********

/groupChat/userChat/groupMembersList?group_id=4185365567283109&page=3

group_id是群的id

page是请求第几页数据,

详细数据请查看下图

接下来我们要写代码了。

import requestsimport sysimport jsonimport timereload(sys)sys.setdefaultencoding('utf8')headetr2 = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'max-age=0','Connection': 'keep-alive','Cookie': 'browser=d2VpYm9mYXhpYW4%3D; h5_deviceID=da4db009e6ae3831cc4fbc8d1998; _T_WM=46f8072dc2db4752c9f5f1bb610d6934; ALF=1523607764; SCF=AlPdz7Wu9iu_xwiWfMtd1hBGr6mZqaKtCcidCgPrDl6oFAuKmtz3fEopj83TsqAVcRKfrT-DDGed9yNoxpYCYks.; SUB=_2A253rKuyDeRhGeRP61sR9ijPzTuIHXVVbjX6rDV6PUJbktAKLXLmkW1NUFPZQTk64zbcwwxo3HMutNZNPULhugpG; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5MyLbIiX5quKaqF190KSgT5JpX5K-hUgL.Fozpeh.7Soq0SoM2dJLoIEXLxKMLBKML12zLxK-L1hqLB-eLxKqL1-2L1KqLxKnL1h.LBozLxKMLBoeLB.zt; SUHB=0YhgX4j3ItdpY-; SSOLoginState=1521015778; H5_INDEX=1; H5_INDEX_TITLE=%E7%A7%8B%E5%86%AC%E6%9A%96%E8%89%B2%E7%B3%BB; M_WEIBOCN_PARAMS=featurecode%3D20000320%26luicode%3D10000011%26lfid%3D1076036364474102','Host': '','RA-Sid': 'B781E81A-0402-024118-ce25e1-ba5345','RA-Ver': '3.0.8','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Mobile Safari/537.36'}urluser = "/groupChat/userChat/groupMembersList?group_id=4185365567283109&page=1"#地址userjson = requests.get(urluser, headers=headetr2).content#发getqprint userjson#原数据json_base = json.loads(userjson)#json数据

json的数据格式是这个样子的

[{"card_group": [{"member": {"id": 2577089961,"profile_image_url": "/crop.0.0.0.0.50/999b45a9tw1efrou9m6tzj2050050mx3.jpg","remark": "","screen_name": "霸气田春_丽_923","verified": false,"verified_type": -1},"mod_type": "mod/groupChat/memberItem"},{"member": {"id": 5637550097,"profile_image_url": "/crop.0.0.750.750.50/0069wAjnjw8fcw5bic0pwj30ku0kugme.jpg","remark": "","screen_name": "搞笑博主的日常","verified": false,"verified_type": -1},"mod_type": "mod/groupChat/memberItem"},{"member": {"id": 6361289052,"profile_image_url": "/crop.0.0.664.664.50/006WvjSkly8foxdg12pj8j30ig0ig75j.jpg","remark": "","screen_name": "JK-晗","verified": false,"verified_type": -1},"mod_type": "mod/groupChat/memberItem"}],"mod_type": "mod/pagelist","next_cursor": "","previous_cursor": ""}]

接下来我们就要开始解析json 拿我我们需要的数据就可以了。

card_group = json_base[0]['card_group']for num in range(0, len(json_base[0]['card_group'])):member = card_group[num]print member['member']['id']print member['member']['screen_name']

这里我们要放一放了,我们需要找到点击关注需要调用的接口了

步骤如下图

下面画箭头的都是需要的数据

数据源,接口都知道了,我们改写代码了

postData2 = { "uid": member['member']['id'],'st':'8cc84b'}url = '/api/friendships/create'json_str = requests.post(url, data=postData2, headers=headetr2).contentprint json_str.decode('gbk').encode('utf-8').decode('unicode_escape')

*****************************分割线*************************************

我们到这里就已经可以

不过需要注意的是,请求过快会报错,所以最好我们隔几秒在请求。

如果报10027错误,就代表需要输入验证码,批量请求多了以后微博会限制的

如果报校验失败,代表需要重新用以上的方法获取关注接口中的st 这个值

如果报token失效,那就需要重新登陆获取Cookie。

完整代码如下

#!/usr/bin/python# -*- coding: UTF-8 -*-import requestsimport sysimport jsonimport timereload(sys)sys.setdefaultencoding('utf8')headetr2 = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'max-age=0','Connection': 'keep-alive','Cookie': 'browser=d2VpYm9mYXhpYW4%3D; h5_deviceID=da4db009e6ae3831cc4fbc8d1998; _T_WM=46f8072dc2db4752c9f5f1bb610d6934; ALF=1523607764; SCF=AlPdz7Wu9iu_xwiWfMtd1hBGr6mZqaKtCcidCgPrDl6oFAuKmtz3fEopj83TsqAVcRKfrT-DDGed9yNoxpYCYks.; SUB=_2A253rKuyDeRhGeRP61sR9ijPzTuIHXVVbjX6rDV6PUJbktAKLXLmkW1NUFPZQTk64zbcwwxo3HMutNZNPULhugpG; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5MyLbIiX5quKaqF190KSgT5JpX5K-hUgL.Fozpeh.7Soq0SoM2dJLoIEXLxKMLBKML12zLxK-L1hqLB-eLxKqL1-2L1KqLxKnL1h.LBozLxKMLBoeLB.zt; SUHB=0YhgX4j3ItdpY-; SSOLoginState=1521015778; H5_INDEX=1; H5_INDEX_TITLE=%E7%A7%8B%E5%86%AC%E6%9A%96%E8%89%B2%E7%B3%BB; M_WEIBOCN_PARAMS=featurecode%3D20000320%26luicode%3D10000011%26lfid%3D1076036364474102','Host': '','RA-Sid': 'B781E81A-0402-024118-ce25e1-ba5345','RA-Ver': '3.0.8','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Mobile Safari/537.36'}for nums in range(1,50):这里是模拟页数 urluser = "/groupChat/userChat/groupMembersList?group_id=4185365567283109&page=%s"%numsuserjson = requests.get(urluser, headers=headetr2).contentjson_base = json.loads(userjson)card_group = json_base[0]['card_group']for num in range(0, len(json_base[0]['card_group'])):member = card_group[num]print member['member']['id']print member['member']['screen_name']postData2 = { "uid": member['member']['id'],'st':'8cc84b'}#post请求传的数据url = '/api/friendships/create'json_str = requests.post(url, data=postData2, headers=headetr2).contentprint json_str.decode('gbk').encode('utf-8').decode('unicode_escape')time.sleep(3)time.sleep(10)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。