This article contains 676 words.
Copyright: 署名-非商业性使用-相同方式共享 4.0 国际
|
CC BY-NC-SA 4.0 International从某天开始,Bilibili 网页端的搜索功能开始在返回的结果中推送视频。这往往导致准确度下降,尤其是当我想搜索没有接触过的关键词的时候。这个功能目前还找不到关闭的方法,只好自己手动修改。
搜索功能是通过 Cookie 中包含的用户信息来推荐的。要阻止推荐行为,一个办法是直接修改发送的 Cookie。直接删除 Cookie 是行不通的,服务器会直接返回 412错误。因此较好的办法是根据没有登录时的 Cookie 来过滤掉会导致推荐行为的 Cookie。
这里要借助的浏览器插件是 Header Editor。这个插件能让用户以很高的自由度修改浏览器发送和接受的内容,包括请求头(Cookie 就在请求头内),响应头和响应体。
手动添加规则
安装 Header Editor 后,新建一条规则。选择“修改请求头”(Modify request header),“匹配类型”(Match Type)中选择“正则表达式”(Regular expression),“匹配规则”输入以下表达式(这个表达式同时包含了新版和旧版的搜索 URL)
1
| ^(?:https\:\/\/api\.bilibili\.com\/x\/web\-interface\/search|https\:\/\/api\.bilibili\.com\/x\/web\-interface\/wbi\/search)
|
然后选择“自定义函数”(Custom function),并输入以下的代码来过滤对请求头中的 Cookie。这些 Cookie 内容在没有登录的时候也会出现,可以保留:
1 2 3 4 5 6 7 8 9
| for (const i in val) { if (val[i].name.toLowerCase() === 'cookie') { let oldCookie = val[i].value; val[i].value = oldCookie .split(/;\s*/) .filter(val => val.match(/^(?:buvid3|buvid4|CURRENT_FNVAL|b_nut|sid|bili_ticket|bili_ticket_expires)/)) .join('; '); } }
|
设置完成后点击“保存"(SAVE)
导入规则
将以下的代码保存到文件,并在“导入和导出”(EXPORT AND IMPORT)中导入,保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| { "request": [], "sendHeader": [ { "enable": false, "name": "No recommendation in search", "ruleType": "modifySendHeader", "matchType": "regexp", "pattern": "^(?:https\\:\\/\\/api\\.bilibili\\.com\\/x\\/web\\-interface\\/search|https\\:\\/\\/api\\.bilibili\\.com\\/x\\/web\\-interface\\/wbi\\/search)", "exclude": "", "group": "Bilibili", "isFunction": true, "action": { "name": "cookie", "value": " val.split(/;\\s*/).filter(val => val.match(/^(?:buvid3|buvid4|CURRENT_FNVAL|b_nut|sid|bili_ticket|bili_ticket_expires)/) != undefined).join('; ')" }, "code": "for (const i in val) {\n if (val[i].name.toLowerCase() === 'cookie') {\n let oldCookie = val[i].value;\n val[i].value = oldCookie\n .split(/;\\s*/)\n .filter(val => val.match(/^(?:buvid3|buvid4|CURRENT_FNVAL|b_nut|sid|bili_ticket|bili_ticket_expires)/))\n .join('; ');\n }\n}" } ], "receiveHeader": [], "receiveBody": [] }
|
也可以用这个链接导入:https://pastebin.com/raw/qaqVAEi2