本帖最后由 cdsgg 于 2022-8-17 11:21 编辑
微博莫名其妙关注了一堆人 甚至我都不知道是谁 今天才想起来清理一波关注 微博有批量取消关注功能
有跟没有一样 还要我一个个点 真是醉了 花了半小时写了以下代码 用作批量取消关注 如果有部分 不想取消掉
可以在白名单里设置 关于header 请求头获取方式 需要到 微博取消关注一个 把请求头复制下来 因为里面包含我的cookie 代码里面没有传上去
emmm 不会有人这个也不知道怎么弄吧
这个取消功能也算是蛮简单的 大神就别喷了
[Python] 纯文本查看 复制代码 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")[0]) # 总共关注的数量
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 = [str(x) for x in get_first_followContent(headers)]
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()
|