python 教你人人影视美剧下载?你爱了吗?

最近无聊刷完了绝命毒师,这应该是我看过所有美剧里面感觉最完美的一部了,逻辑基本没什么大问题,埋的伏笔基本也填完坑。唯一不足的就是walt的智商感觉碾压了剧里面所有人,没什么精彩的智力博弈,唯一能抗衡的炸鸡叔也死得太早了,实在不过瘾(无聊的家庭肥皂剧情节也太多了XD)。看完之后我就迫不及待地开始追毒师的前作风骚律师,但无奈网上的资源良莠不齐,有种子的也要一个一个点,于是乎写了个py脚本方便迅雷自动下载剧集(支持迅雷9和10),代码如下:

import requests
import sys
from bs4 import BeautifulSoup
from win32com.client import Dispatch

# 迅雷下载函数
def thunder_download(url, filename):
    thunder = Dispatch('ThunderAgent.Agent.1')
    thunder.AddTask(url, filename, r"F:\迅雷下载")
    thunder.CommitTasks()
    print("任务已建立,开始下载:{}...".format(filename))

# 爬虫函数
def get_request(url):
    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Connection': 'keep-alive',
        'User-Agent': user_agent,
    }
    while True:
        try:
            res = requests.get(url, headers=headers, timeout=10)
        except requests.exceptions.ConnectionError:
            print('ConnectionError -- please wait 3 seconds')
            time.sleep(3)
        except requests.exceptions.ChunkedEncodingError:
            print('ChunkedEncodingError -- please wait 3 seconds')
            time.sleep(3)
        except:
            print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds')
            time.sleep(3)
        else:
            bs = BeautifulSoup(res.text, "lxml")
            return bs


def main(argv=sys.argv):
    # 进入搜索结果界面
    is_or_not_search = True
    while is_or_not_search:
        search_word = input('请输入搜索关键词: ')
        url = "http://www.yyetss.com/Search/index/?s_keys="
        bs = get_request(url + search_word)
        itemInfo = bs.find_all('a', class_="imgbox")
        if itemInfo == []:
            while True:
                flag = input("查询结果:0,是否继续查询(yes/no)")
                if flag == "no":
                    is_or_not_search = False
                    break
                elif flag == "yes":
                    break
                else:
                    print("请输入正确的选项!")
                    continue
        else:
            for i in itemInfo:
                title = i.get('title')
                print(str(itemInfo.index(i) + 1) + ":" + title)
            break

    # 进入具体剧集界面
    if is_or_not_search == True:
        while True:
            try:
                movie_name = input("请选择你要下载的剧集: ")
                movie_value = itemInfo[int(movie_name) - 1]
            except (IndexError, ValueError):
                print("请输入正确的选项!")
            except Exception:
                print("未知错误!")
            else:
                break
        movie_url = "http://www.yyetss.com" + movie_value.get('href')
        movie_bs = get_request(movie_url)
        magnetInfo = movie_bs.find_all('a', target="_blank")
        while True:
            for i in magnetInfo:
                magnet = i.string
                print(str(magnetInfo.index(i) + 1) + ":" + magnet)

            # 获取需要下载的磁力链接,调用迅雷进行下载
            while True:
                try:
                    download_name = input("请选择你要下载的链接: ")
                    download_value = magnetInfo[int(download_name) - 1]
                except (IndexError, ValueError):
                    print('请输入正确的选项!')
                except Exception:
                    print("未知错误!")
                else:
                    break
            download_url = download_value.get('href')
            download_file_name = magnetInfo[int(download_name) - 1].string
            thunder_download(download_url, download_file_name)

            flag = input('请问需要继续下载吗(yes/no): ')
            if flag == "no":
                print('感谢使用,by May')
                break
            else:
                continue


if __name__ == "__main__":
    sys.exit(main())

如果碰到爬虫爬不到的内容,可以通过模拟浏览器登陆直接获取种子页面(需要浏览器驱动支持),下面只放个代码大概,后面的内容也差不多:


driver = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')

driver.get("http://www.yyetss.com/")
ad = driver.find_elements_by_class_name('close')[0]
name_input = driver.find_element_by_tag_name('input')
search = driver.find_element_by_id('header-search')

ad.click()
name_input.send_keys('风骚律师')
search.click()

差不多就这么多,it’s all good,man!

现在还有大礼包免费赠送
推荐一下我建的python学习交流扣扣qun:850973621,群里有免费的视频教程,开发工具、
电子书籍、项目源码分享。学习python web、python爬虫、数据分析、大数据,人工智能等
技术有不懂的可以加入一起交流学习,一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值