tkinter+re实现百度网盘分享链接自动跳转

目录

一、背景

二、需求分析

三、实现 

三、打包

四、测试


一、背景

相信大家使用百度网盘的时候都会去一些链接网站吧,比如下面这个网站

这个网站具体实现的功能是:管理员上传百度网盘链接,用户点击复制链接按钮可以将百度网盘的分享链接复制到剪贴板

但是,我们将分享链接直接粘贴到浏览器搜索框却并不可以直接访问

【橘子盘搜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

 

四、测试

随便找一个分享链接

 

成功跳转

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值