目录
一、背景
二、需求分析
三、实现
三、打包
四、测试
一、背景
相信大家使用百度网盘的时候都会去一些链接网站吧,比如下面这个网站
这个网站具体实现的功能是:管理员上传百度网盘链接,用户点击复制链接按钮可以将百度网盘的分享链接复制到剪贴板
但是,我们将分享链接直接粘贴到浏览器搜索框却并不可以直接访问
【橘子盘搜nmme.one】标题:他是谁,链接:https://pan.baidu.com/s/1MqUcEep1NlAuRDXllqIlPA?pwd=8888,提取码:8888
因为有其他非链接部分
然而,百度网盘pc版并不可以直接跳转链接,所以,如果像直接跳转只能手搓。
二、需求分析
用户输入百度网盘分享链接
【橘子盘搜nmme.one】标题:他是谁,链接:https://pan.baidu.com/s/1MqUcEep1NlAuRDXllqIlPA?pwd=8888,提取码:8888
或
【橘子盘搜nmme.one】标题:他是谁2023(百度云盘),链接:https://pan.baidu.com/s/1_Nfl94WBrI0I4hwSguP3kA?pwd=ljx3,提取码:ljx3
用户通过点击按钮可以直接打开百度网盘转存页面
三、实现
前端直接用tkinter,然后后端通过正则匹配,匹配到这种可以访问的链接
https://pan.baidu.com/s/1_Nfl94WBrI0I4hwSguP3kA?pwd=ljx3
然后通过webbrowser可以直接打开系统默认浏览器
import webbrowser
webbrowser.open(url='your_url', new=0)
部分代码(无方法实现)
from tkinter import *
import webbrowser
def get_group():
s = e.get()
# pattern = r'https://pan.baidu.com/s/[a-zA-Z0-9]{0,}\?pwd=\d{4}'
pattern = r'https://pan.baidu.com/s/[a-zA-Z0-9]{0,}\_{0,1}[a-zA-Z0-9]{0,}\?pwd=[a-zA-Z0-9]{4}'
match = re.search(pattern, s).group()
print(match)
try:
webbrowser.open(url=match, new=0)
except():
print("unknown error")
def clear():
e.delete(0, END)
root = Tk()
root.title('快存v1.0')
# 设置窗口位置,中间偏上100px
width = 500
height = 100
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = int(screen_width / 2 - width / 2)
y = int(screen_height / 2 - height / 2) - 100
size = '{}x{}+{}+{}'.format(width, height, x, y)
root.geometry(size)
e = Entry(root, width=80)
e.pack()
Button(root, text='clear', command=clear).pack(side=RIGHT)
Button(root, text='open', command=get_group).pack(side=RIGHT)
root.mainloop()
这里需要注意的是提取密码可能是数字和字母组合,所以其正则表达式应该为
[a-zA-Z0-9]{4}
然后每个链接也有不同,需要多点开几个查看,就比如可能会有下划线(最多一个),相应正则表达式应该为
\_{0,1}
也就是下划线可以有0或者一个
最后,窗口位置尽量偏上一些,详情请看人机交互相关知识
再加上一个清空输入的按钮,这样会方便一些
三、打包
通过pyinstaller打包
pyinstaller -F -w 快存v1.1.py
四、测试
随便找一个分享链接
成功跳转