本帖最后由 Simonl 于 2020-5-4 17:46 编辑
每次打开电影网站下载种子,跳转N个网页,烦死了,干脆自己写一个工具,其他网站举一反三。
但是网站本身速度就慢,下载的时候可能还会卡住
有朋友说不会用,我打包成exe文件了,直接运行就可以
2.0版: https://lanzouj.com/ibqz8wh
2.1版 https://lanzouj.com/ibwddmb 说明:发现带冒号的时候创建不了文件,这次加入了个判定,如果有冒号就替换成“.”,如果还有什么需求大家可以提出来
[Asm] 纯文本查看 复制代码 import requests,re
from bs4 import BeautifulSoup
a=BeautifulSoup(requests.get('http://www.lwgod.me/forum-292-1.html').text,'lxml')
b=a.find_all('tbody')
list_url=[]
list_name=[]
w=0
for i in b[1:11]:
w+=1
try:
name=re.findall(r'【龙网BT组】.*】',i.text)[0] #电影名字
print(w,name)
list_name.append(name)
url='http://www.lwgod.me/'+i.find('a')['href'] #二级网页地址
list_url.append(url)
except:
w-=1
pass
xz=input('请输入要下载的序号||输入多个空格隔开:')
q=xz.split(' ')
print(q)
for j in q:
j=int(j)
url_2=list_url[j-1] #电影名称网址
name=list_name[j-1] #电影名字
print(f'电影详情页地址:{url_2}')
a1=BeautifulSoup(requests.get(url_2).text,'lxml')#解析下载网页
b1='http://www.lwgod.me/'+a1.find('ignore_js_op').find('a')['href']
print(f'种子下载页地址:{b1}')
a2=BeautifulSoup(requests.get(b1).text,'lxml')
b2='http://www.lwgod.me/'+a2.find('div',style='border:1px solid #D9D9D9;margin:10px 0 5px;').find('a')['href'] #种子下载地址
print(f'种子下载地址:{b2}')
with open(f'D:/浏览器下载/{name}.torrent','wb')as f: #这里目录位置自己改过,改成自己的目录
f.write(requests.get(b2).content)
print(f'{name}下载完成')
input('任意键结束')
很多人说看不到下载到哪里,因为我之前只直接放在我本地的目录,你电脑可能没有这个目录,所以可能闪退,这次我设置了创建目录,在D盘创建一个叫【种子下载】的目录,这样就不会报错了,还增加了无限循环,输入n才会退出
[Asm] 纯文本查看 复制代码 import requests,re,os
from bs4 import BeautifulSoup
path='d:/种子下载/'
try:
ml=os.makedirs(path)
print('种子下载目录创建成功')
except:
pass
a=BeautifulSoup(requests.get('http://www.lwgod.me/forum-292-1.html').text,'lxml')
b=a.find_all('tbody')
list_url=[]
list_name=[]
w=0
V=True
while V:
for i in b[1:11]:
w+=1
try:
name=re.findall(r'【龙网BT组】.*】',i.text)[0] #电影名字
print(w,name)
list_name.append(name)
url='http://www.lwgod.me/'+i.find('a')['href'] #二级网页地址
list_url.append(url)
except:
w-=1
pass
xz=input('请输入要下载的序号||输入多个空格隔开:')
q=xz.split(' ')
print(q)
for j in q:
j=int(j)
url_2=list_url[j-1] #电影名称网址
name=list_name[j-1] #电影名字
print(f'电影详情页地址:{url_2}')
a1=BeautifulSoup(requests.get(url_2).text,'lxml')#解析下载网页
b1='http://www.lwgod.me/'+a1.find('ignore_js_op').find('a')['href']
print(f'种子下载页地址:{b1}')
a2=BeautifulSoup(requests.get(b1).text,'lxml')
b2='http://www.lwgod.me/'+a2.find('div',style='border:1px solid #D9D9D9;margin:10px 0 5px;').find('a')['href'] #种子下载地址
print(f'种子下载地址:{b2}')
with open(f'{path}{name}.torrent','wb')as f:
f.write(requests.get(b2).content)
print(f'{name}下载完成')
p=input('n结束,任意键继续')
if p=='n':
V=False
2.1版代码:
[Asm] 纯文本查看 复制代码 import requests,re,os
from bs4 import BeautifulSoup
path='d:/种子下载/'
try:
ml=os.makedirs(path)
print('种子下载目录创建成功')
except:
pass
a=BeautifulSoup(requests.get('http://www.lwgod.me/forum-292-1.html').text,'lxml')
b=a.find_all('tbody')
list_url=[]
list_name=[]
w=0
V=True
while V:
for i in b[1:17]:
w+=1
try:
name=re.findall(r'【龙网BT组】.*】',i.text)[0] #电影名字
name=re.sub(r'[:]','.',name) #删除冒号,防止创建不了文件 [color=#ff0000] 修改了这里[/color]
print(w,name)
list_name.append(name)
url='http://www.lwgod.me/'+i.find('a')['href'] #二级网页地址
list_url.append(url)
except:
w-=1
pass
xz=input('请输入要下载的序号||输入多个空格隔开:')
q=xz.split(' ')
print(q)
for j in q:
j=int(j)
url_2=list_url[j-1] #电影名称网址
name=list_name[j-1] #电影名字
print(f'电影详情页地址:{url_2}')
a1=BeautifulSoup(requests.get(url_2).text,'lxml')#解析下载网页
b1='http://www.lwgod.me/'+a1.find('ignore_js_op').find('a')['href']
print(f'种子下载页地址:{b1}')
a2=BeautifulSoup(requests.get(b1).text,'lxml')
b2='http://www.lwgod.me/'+a2.find('div',style='border:1px solid #D9D9D9;margin:10px 0 5px;').find('a')['href'] #种子下载地址
print(f'种子下载地址:{b2}')
with open(f'{path}{name}.torrent','wb')as f:
f.write(requests.get(b2).content)
print(f'{name}下载完成')
p=input('n结束,任意键继续')
if p=='n':
V=False
2.2版,增加判断超时从新下载,防止卡住
[Asm] 纯文本查看 复制代码 import requests,re,os,eventlet
from bs4 import BeautifulSoup
path='d:/种子下载/'
try:
ml=os.makedirs(path)
print('种子下载目录创建成功')
except:
pass
a=BeautifulSoup(requests.get('http://www.lwgod.me/forum-292-1.html').text,'lxml')
b=a.find_all('tbody')
list_url=[]
list_name=[]
w=0
V=True
while V:
for i in b[1:17]:
w+=1
try:
name=re.findall(r'【龙网BT组】.*】',i.text)[0] #电影名字
name=re.sub(r'[:]','.',name) #删除冒号,防止创建不了文件
print(w,name)
list_name.append(name)
url='http://www.lwgod.me/'+i.find('a')['href'] #二级网页地址
list_url.append(url)
except:
w-=1
pass
xz=input('请输入要下载的序号||输入多个空格隔开:')
q=xz.split(' ')
print(q)
for j in q:
j=int(j)
url_2=list_url[j-1] #电影名称网址
name=list_name[j-1] #电影名字
print(f'电影详情页地址:{url_2}')
a1=BeautifulSoup(requests.get(url_2).text,'lxml')#解析下载网页
b1='http://www.lwgod.me/'+a1.find('ignore_js_op').find('a')['href']
print(f'种子下载页地址:{b1}')
a2=BeautifulSoup(requests.get(b1).text,'lxml')
b2='http://www.lwgod.me/'+a2.find('div',style='border:1px solid #D9D9D9;margin:10px 0 5px;').find('a')['href'] #种子下载地址
print(f'种子下载地址:{b2}')
eventlet.monkey_patch()
o=True
oo=0
o1='下载超时,重新下载' #判断下载是否超时
while o:
oo+=1
print(f'第{oo}次下载')
with eventlet.Timeout(30,False): #如果时间超过30s,则重新循环,否则跳出循环
with open(f'{path}{name}.torrent','wb')as f:
f.write(requests.get(b2).content)
print(f'{name}下载完成')
o1='下载成功' #如果执行能到这里,则把O1改成下载成功,否则输出下载超时
o = False
print(o1)
p=input('n结束,任意键继续')
if p=='n':
V=False
|