吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2969|回复: 24
收起左侧

[Python 转载] 微博批量取关 可保留不取消关注白名单

  [复制链接]
cdsgg 发表于 2022-8-17 10:43
本帖最后由 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()
1.png
2.png

请求头里面的内容

请求头里面的内容

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
qrp127 + 1 + 1 谢谢楼主代码。 记一个坑,python3.7中:需要将15行/34行&amp;quot;$.data.follows.
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
OEMBSD + 1 + 1 谢谢@Thanks!
smtwtfs + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

anwen 发表于 2022-8-17 11:09
  我的微博账号因长期不登录(不知道是不是长期不登录被盗了),
被冻结了..解开还得给微博发手持身份证正反面照片......直接放弃治疗了 哈哈
花甲三盘 发表于 2022-12-6 14:44
本帖最后由 花甲三盘 于 2022-12-6 14:46 编辑

求教,错误代码
Traceback (most recent call last):
  File "D:\python projects\test.py", line 69, in <module>
    result = [str(x) for x in get_first_followContent(headers)]
  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行
 楼主| cdsgg 发表于 2022-8-17 10:48
HappyCrazy 发表于 2022-8-17 11:01
已经卸载微博好些年了!!
不过你这段代码我确实不会用。因为我不懂py。
首先需要安装啥依赖(包),哪些字段是需要根据自己账号进行替换的,运行命令是啥
 楼主| cdsgg 发表于 2022-8-17 11:03
HappyCrazy 发表于 2022-8-17 11:01
已经卸载微博好些年了!!
不过你这段代码我确实不会用。因为我不懂py。
首先需要安装啥依赖(包),哪些字 ...

安装 requests  jsonpath 这两个包  直接Python xxxx.py 命令行就能运行了 请求头直接去取消一个关注的 抓包一下 还是需要一点基础的
 楼主| cdsgg 发表于 2022-8-17 11:11
anwen 发表于 2022-8-17 11:09
我的微博账号因长期不登录(不知道是不是长期不登录被盗了),
被冻结了..解开还得给微博发 ...

我也是万年不玩微博  都不知道咋关注了一堆的人 本来想用微博的批量取消关注 还得一个个点 恶心死我了
oxding 发表于 2022-8-17 11:13
所有关注的 ID 是怎么获取到的啊  
 楼主| cdsgg 发表于 2022-8-17 11:15
oxding 发表于 2022-8-17 11:13
所有关注的 ID 是怎么获取到的啊

get_first_followContent 这个方法里面 获取得到就是全部关注的ID
grekevin 发表于 2022-8-17 11:19
不是看到你的贴子,我都忘了自己还有微博了
谢谢楼主,不过还是收藏备用了。自己也学习一下。
chenfy08 发表于 2022-8-17 11:24
谢谢分享,真的有用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表