微博批量取关 可保留不取消关注白名单
本帖最后由 cdsgg 于 2022-8-17 11:21 编辑微博莫名其妙关注了一堆人 甚至我都不知道是谁 今天才想起来清理一波关注 微博有批量取消关注功能
有跟没有一样 还要我一个个点 真是醉了 花了半小时写了以下代码 用作批量取消关注 如果有部分 不想取消掉
可以在白名单里设置 关于header 请求头获取方式 需要到 微博取消关注一个 把请求头复制下来 因为里面包含我的cookie 代码里面没有传上去
emmm 不会有人这个也不知道怎么弄吧
这个取消功能也算是蛮简单的 大神就别喷了
import requests
from jsonpath import jsonpath
import os
def get_first_followContent(headers):
"""
这个方法里面 会先获取 总共的关注数量 一页大概50个 如果第二页也超过50个 则进行下一页 以此类推
:return:
"""
r = requests.get('https://weibo.com/ajax/profile/followContent?sortType=all?sortType=all', headers=headers)
# print(r.json())
follow_list = jsonpath(r.json(), "$.data.follows.users.id")
print(len(follow_list))
total_number = int(jsonpath(r.json(), "$.data.follows.total_number"))# 总共关注的数量
page = int(total_number / 50)
if page * 50 < total_number:
page = page + 1
if total_number < 50:
return follow_list# 如果关注的人低于50个 一般是只有一页直接返回关注ID列表
for i in range(1, page):
if i + 1 * 50 > total_number:
break
url = f'https://weibo.com/ajax/profile/followContent?page={i + 1}&next_cursor=50'
print(url)
req = requests.get(url, headers=headers).json()
result = jsonpath(req, "$.data.follows.users.id")
follow_list = follow_list + result
return follow_list
def get_white_list():
if not os.path.exists('不取消关注列表.txt'):
with open('不取消关注列表.txt', 'w') as f:
f.write('请将不取消关注列表 通过ID 换行的方式写入,例如:7475835448\n3660350872')
f.close()
return None
return open('不取消关注列表.txt', 'r', encoding='utf-8').read().split('\n')
def destroyBatch(headers, destroylist):
for i in destroylist:
result = requests.post('https://weibo.com/ajax/friendships/destory', json={"uid": "%s" % i}, headers=headers)
print(result.json())
if __name__ == '__main__':
headers = {
}
# 请求头请自行复制
result =
white_lists = get_white_list()# 获取白名单
if white_lists is not None:
for j in white_lists:
if j not in result:
continue
result.remove(j)
destroyBatch(headers, result)
# get_first_followContent()
{:301_992:}我的微博账号因长期不登录(不知道是不是长期不登录被盗了),
被冻结了..解开还得给微博发手持身份证正反面照片......直接放弃治疗了 哈哈 本帖最后由 花甲三盘 于 2022-12-6 14:46 编辑
求教,错误代码
Traceback (most recent call last):
File "D:\python projects\test.py", line 69, in <module>
result =
File "D:\python projects\test.py", line 16, in get_first_followContent
print(len(follow_list))
TypeError: object of type 'bool' has no len()
对应您的16行和62行 好久没写Python 代码了 逻辑都不清楚了 {:1_907:} 已经卸载微博好些年了!!
不过你这段代码我确实不会用。因为我不懂py。
首先需要安装啥依赖(包),哪些字段是需要根据自己账号进行替换的,运行命令是啥{:1_907:} HappyCrazy 发表于 2022-8-17 11:01
已经卸载微博好些年了!!
不过你这段代码我确实不会用。因为我不懂py。
首先需要安装啥依赖(包),哪些字 ...
安装 requestsjsonpath 这两个包直接Python xxxx.py 命令行就能运行了 请求头直接去取消一个关注的 抓包一下 还是需要一点基础的 anwen 发表于 2022-8-17 11:09
我的微博账号因长期不登录(不知道是不是长期不登录被盗了),
被冻结了..解开还得给微博发 ...
;www 我也是万年不玩微博都不知道咋关注了一堆的人 本来想用微博的批量取消关注 还得一个个点 恶心死我了 所有关注的 ID 是怎么获取到的啊 oxding 发表于 2022-8-17 11:13
所有关注的 ID 是怎么获取到的啊
get_first_followContent 这个方法里面 获取得到就是全部关注的ID 不是看到你的贴子,我都忘了自己还有微博了{:1_896:}
谢谢楼主,不过还是收藏备用了。自己也学习一下。 谢谢分享,真的有用