清粉丝是鼠标点三下的活:卡片右下角的「更多」、弹层里的「移除粉丝」、弹窗里的确认。一页十几条,清到第二页手就废了,所以写了这个脚本。整个 main.py 八十行出头,只清自己空间的粉丝,也只给自己用。自动化操作在平台那边算什么性质,文末写清楚了,动手前先看了那段。
登录不归它管
from DrissionPage import ChromiumPage
page = ChromiumPage().latest_tab
ChromiumPage() 不带参数,就按 DrissionPage 自己包里 _configs/configs.ini 那行 address = 127.0.0.1:9222 去接管一个已经开着的浏览器,latest_tab 拿当前最新的标签页。B 站的登录态在那个浏览器里,脚本只负责读和点。
文件开头注释掉的一段是早期版本,用 XPath 依次填手机号、密码、点登录。这几行现在是死的,跑之前手工登一次就行。
入口、页数、翻页
page.get('https://space.bilibili.com/<自己的UID>/relation/fans?spm_id_from=333.33.0.0')
all_pages = page.ele('xpath://*[@id="app"]/main/div[1]/div[2]/div[2]/div[1]/button[10]')
print(f'共{all_pages.text}页')
for i in range(2):
print(f'第{i+1}页')
button[10] 是分页条上倒数那个按钮,文本形如「共 12 页」,取出来只为打印一行。真正决定跑几页的是下面那个 range(2),一个写死的常量,跟读到的页数没有关系,想全清完得自己把这个 2 改大。循环末尾点的是 button[11],下一页也靠位置。
这两个下标和上面那一长串 …