马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2023-7-4 14:40 编辑
原本下载文件时要打开浏览器,再打开一系列网页,太麻烦了。所以就做了这个,无需打开浏览器即可下载
所需库:requests,tkinter
为了展示程序如何使用,在此提供几个提取码:4nwnrp
8zq57z
x5w5ypq
93gn9r
源代码(课余时间写的,比较简陋,主要是为了练习爬虫的使用)
from requests import *
from tkinter import *
from tkinter.filedialog import *
from tkinter.messagebox import *
sts=[]
def find_site(string):
ans=[]
for i in range(len(string)-6):
if string[i]=='a':
if string[i+1]==' ':
if string[i+2]=='h':
if string[i+3]=='r':
if string[i+4]=='e':
if string[i+5]=='f':
ans.append(i)
return ans
agent={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
def download():
html=get('https://www.fuulea.com/class/task/download/?pin='+entry.get(),headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}).text
sts=find_site(html)
if len(sts):showtext.set(' 共有 '+str(len(sts))+' 个文件')
else:showtext.set(' 没有文件')
for st in sts:
for en in range(8,500):
if html[st+en]=='"':
site=html[st+8:st+en]
break;
filename='114514'
for i in range(st+en,st+8,-1):
if html[i]=='/':
filename=html[i+1:st+en]
print(filename)
break;
file=asksaveasfile(initialfile=filename)
if file==None:continue
else:file.detach().write(get(site,headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}).content)
window=Tk()
window.title('fuulea downloader 2.2.34')
window.geometry('320x100')
showtext=StringVar()
showtext.set(' 没有文件')
tqm=Label(window,text='请输入提取码:')
tqm.grid(column=0,row=0)
entry=Entry(window,width=15)
entry.grid(column=0,row=1)
btn=Button(window,text=' 下载 ',command=download)
btn.grid(column=0,row=2)
show=Label(window,textvariable=showtext)
show.grid(column=1,row=1)
window.mainloop()
|