吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8024|回复: 41
收起左侧

[Python 转载] 为了方便下载种子,自己写了个工具

[复制链接]
Simonl 发表于 2020-4-21 23:52
本帖最后由 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('任意键结束')

微信截图_20200421234346.png
很多人说看不到下载到哪里,因为我之前只直接放在我本地的目录,你电脑可能没有这个目录,所以可能闪退,这次我设置了创建目录,在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

微信截图_20200422105851.png
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

免费评分

参与人数 6吾爱币 +5 热心值 +6 收起 理由
crab19901216 + 1 + 1 用心讨论,共获提升!
TSF + 1 + 1 谢谢@Thanks!
app775 + 1 + 1 热心回复!
飞仙003 + 1 我很赞同!
wdj5000 + 1 + 1 热心回复!
taozididi + 1 + 1 原创支持

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Simonl 发表于 2020-4-22 12:34
tomjohnjoan 发表于 2020-4-22 12:22
小而强大
谢谢分享

其他网站你要自己写,这个不通用
 楼主| Simonl 发表于 2020-4-22 08:31
9009LE 发表于 2020-4-22 01:08
win10系统 能够出现截图里面的内容 但是输入后 闪退,无法找到保存到那里去了

保存路径啊
Lgl86988 发表于 2020-4-22 00:04
taozididi 发表于 2020-4-22 00:10
原创支持
fjhscpc 发表于 2020-4-22 00:15
这个利害了,一会试试去
小可爱圆圆 发表于 2020-4-22 00:21
感谢分享,谢谢。
一团黄线 发表于 2020-4-22 00:24
感谢分享电影网站及方法
wdj5000 发表于 2020-4-22 00:38
感谢分享
wdj5000 发表于 2020-4-22 00:41
句体怎么用,小白请教
 楼主| Simonl 发表于 2020-4-22 00:51
wdj5000 发表于 2020-4-22 00:41
句体怎么用,小白请教

等下吧,我打包成exe
9009LE 发表于 2020-4-22 01:08
win10系统 能够出现截图里面的内容 但是输入后 闪退,无法找到保存到那里去了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表