游客发表
百度网盘分享链接后面跟的秒传那串4位提取码,每次都要手动输入,连接烦得很。脚本我把这个动作写成了脚本,秒传现在双击一下,连接链接和提取码自动填进浏览器,脚本省掉至少三步操作。秒传
原理不复杂。连接网盘的脚本分享链接格式基本固定:https://pan.baidu.com/s/1xxxxx,提取码通常跟在链接文本后面,秒传用“提取码”或“密码”之类的连接字样引出,格式是脚本4位字母数字组合。脚本要做的秒传就是两件事——从一段文本里把链接和提取码分别揪出来,然后拼成可以直接访问的连接URL。
先看提取。脚本我用Python写的,正则表达式匹配链接部分:https?://pan\.baidu\.com/s/[a-zA-Z0-9_-]+,这个模式能覆盖绝大多数分享链接。提取码稍微麻烦一点,因为不同人分享时写法五花八门——“提取码:abcd”“密码: 1234”“(提取码:x7k9)”,标点符号中英文混用。我的做法是先找“提取码”或“密码”这两个关键词,然后取后面第一个4位字母数字串。正则写成(?:提取码|密码)[::\s]*([a-zA-Z0-9]{ 4}),实测能应付九成以上的情况。
有例外。有人把提取码写在链接前面,有人用“访问码”代替“提取码”,还有人干脆不写文字直接贴“abcd”四个字符。前两种情况我加了备选关键词,第三种直接放弃——没有上下文,光靠四个字符没法判断是不是提取码,猜错了反而添乱。
提取出来之后拼URL。百度网盘的规则是https://pan.baidu.com/s/1xxxxx?pwd=abcd,pwd参数直接带上提取码,浏览器打开后会自动填充,不需要再手动输入。这个格式我验证过,PC端和移动端都生效。
脚本本身很短,核心代码不到20行。我把它包了一个命令行入口,用起来是这样:复制一段包含链接和提取码的文本,终端里执行python extract.py,脚本从剪贴板读取内容,提取成功后自动用系统默认浏览器打开。macOS下用pbpaste读剪贴板,Windows下用powershell Get-Clipboard,Linux用xclip,各平台适配也就几行代码的事。
实际用下来,最大的坑不是正则,是剪贴板里的文本格式。从微信复制过来的内容经常带不可见字符,比如零宽空格,正则匹配时链接末尾会多出几个字符导致404。我的处理方式是在匹配前先做一次清洗,把\u200b、\u200c这类零宽字符全部替换掉。这个细节花了我不少时间才定位到。
另一个问题是短链接。有些分享用的是pan.baidu.com/s/1xxxxx的短格式,没有https://前缀,正则里的https?就匹配不到。我把协议部分改成可选的,同时补上默认协议,这样两种格式都能处理。
脚本我放在GitHub上了,没有做图形界面,命令行足够用。如果你经常需要处理大量分享链接,可以把它改成批量模式,读一个文本文件,逐行提取并输出结果。我自己的使用场景比较单一,就没往下折腾。
说到底,这东西解决的就是一个很具体的麻烦。写脚本花了一个小时,但之后每次省下的十几秒累积起来,早就回本了。技术工具的价值有时候就这么朴素——不用多聪明,管用就行。
友情链接