找回密码
  注册[Register]
查看: 510|回复: 15

[python] 把影视网站的下载链接一网打尽!

[复制链接]
发表于 2022-8-11 21:11 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

[Python] 纯文本查看 复制代码
import requests
import parsel
import prettytable as pt
 
headers = {
    'Referer': 'https://so.******.com/?wd=%E9%9B%B7%E7%A5%9E4',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
 
 
def response(url):
    resp = requests.get(url=url, headers=headers).text
    return resp
 
 
def get_url(url):
    resp = response(url)
    selec = parsel.Selector(resp)
    # film_id = re.findall('<a class="a".*?data-id="(.*?)".*?title="(.*?)/.*?</a>', resp)
    film_url = selec.css('body > div.div.lists > div.left > ul > li > a::attr(href)').getall()
    # title = selec.css('body > div.div.lists > div.left > ul > li> div > h3 > a::text').getall()
    return film_url
 
 
def get_download_url(url):
    resp = response(url)
    selec = parsel.Selector(resp)
    download_url = selec.css('body > div.div.item > div.left > div.btdown > ul > li > a::attr(href)').getall()
    return download_url
 
 
def get_seed(url):
    resp = response(url)
    select = parsel.Selector(resp)
    seed = select.css('body > div.div.lists > div.left h3 b::text').getall()
    return seed
 
 
def run(url):
    seed = get_seed(url)
    down_url = get_url(url)
    tb = pt.PrettyTable()
    tb.field_names = ['序号', '标题', '种子', '评分']
    num = 0
    download_url = []
    for film_url in down_url:
        # print(film_url)
        respons = response(film_url)
        selector = parsel.Selector(respons)
        score = selector.css('body > div.div.item > div.left > div.main > ul > li:nth-child(8)::text').get()
        title = selector.css('body > div.div.item > div.left > div.main > ul > li > h1::text').get()
        down_link = get_download_url(film_url)
        download_url.append(down_link)
        tb.add_row([num, title, score, seed[num]])
        num += 1
    print(tb)
    while True:
        print('--------想要翻页请输入大于19的数字---------')
        index = int(input('请输入想要下载的链接(-1退出):'))
        if index == -1:
            break
        elif index > 19:
            print('请输入页码大于1')
            main()
        else:
            if seed[index] == '无种':
                print('无种')
            else:
                print(download_url[index])
 
 
def main():
    key = input('请输入你想要下载的内容:')
    page = input('请从1开始请输入你想要的搜索页数:')
    url = f'https://so.******.com/?wd={key}&page={page}'
    run(url)
 
 
if __name__ == '__main__':
    main()
# 手动翻页


效果图
2.png 效果图
1.jpg
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-8-11 21:12 | 显示全部楼层
先收藏了,万一用到呢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 21:20 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 21:41 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 22:03 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 22:04 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2022-8-11 22:08 | 显示全部楼层

支持楼主,谢谢分享。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 22:48 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 23:56 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-11 23:58 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-4 13:09 , Processed in 0.043518 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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