本帖最后由 三滑稽甲苯 于 2020-12-5 20:28 编辑
原理
1. 爬取给定网址中每一集的网址
2. 使用you-get下载每一集
主要代码↓
[Python] 纯文本查看 复制代码 from os.path import exists
from requests import Session
from bs4 import BeautifulSoup as bs
from you_get import common
class Teleplay():
def __init__(self, url, path):
if exists(path): self.path = path
else:
raise ValueError('Invalid download path!(' + path + ')')
self.url = url
self.conn = Session()
self.down_url = []
self.get_down_url()
def get_down_url(self):
soup = bs(self.conn.get(self.url).text, features="html.parser")
base = str(soup.findAll('div', {'class': 'mod_episode'})[0])
res = bs(base, features="html.parser")
for url in res.findAll('a'):
self.down_url.append(url['href'])
def download(self):
for down in self.down_url:
common.any_download(url='https://v.qq.com'+down, stream_id='mp4', info_only=False, output_dir=self.path, merge=True)
def show(self):
for url in self.down_url: print('https://v.qq.com' + url)
注意
1. 需要的第三方module: requests, BeautifulSoup4, you-get
2. 无法下载vip视频↓(you-get的限制)
3. 支持断点下载(you-get的功能)
4. 出现卡顿,ctrl+c中断后重新运行,参数不要改变,应该会继续之前的下载
食用方法
自己动手,丰衣足食
1. 保存以上代码,命名为“TencentVideo.py”
2. 同目录下新建“xxx.py”(名称随意),按“示例↓”一栏填写代码
3. 运行
懒人法
1. 保存以上代码,命名为“TencentVideo.py”
2. 同目录下新建“xxx.py”(名称随意),复制以下代码
[Python] 纯文本查看 复制代码 from TencentVideo import Teleplay
from os.path import exists
if exists('info.txt'):
with open('info.txt', encoding="utf-8") as f:
l = f.readlines()
url, path = l[0:2]
else:
url = input('URL: ')
path = input('PATH: ')
main = Teleplay(url, path)
main.download()
3. 若运行上面代码时可以直接复制粘贴,则直接粘贴对应信息即可;若无法粘贴,同目录下新建info.txt并填入信息(文件开头第一行先填网址,回车后第二行填保存路径)后运行以上代码
exe封装版
若运行exe时可以直接复制粘贴,则直接粘贴对应信息即可;若无法粘贴,同目录下新建info.txt并填入信息(文件开头第一行先填网址,回车后第二行填保存路径)后运行exe
填info.txt的范例
示例↓
示例1. 显示此电视剧每一集的观看网址↓
[Python] 纯文本查看 复制代码 from TencentVideo import Teleplay
test = Teleplay('https://v.qq.com/x/cover/mzc00200odgluaz.html', r'E:\python\script\modules\腾讯视频\test')# 参数为任一集的网址+保存路径
test.show()
示例2. 下载↓
[Python] 纯文本查看 复制代码 from TencentVideo import Teleplay
test = Teleplay('https://v.qq.com/x/cover/mzc00200odgluaz.html', r'E:\python\script\modules\腾讯视频\test') # 参数为任一集的网址+保存路径
test.download()
示例3. 播放↓
更新日志
2020.12.5 摒弃system()调用you_get, 改用import以便于使用及打包(打包的V1版本由于未知原因无法使用)
下载地址
x64的exe及历史脚本:https://wwx.lanzoux.com/b00zzd1lg 密码:gncm
@hehehero 封装的.exe:https://kof97.lanzoui.com/ihZTniruhfc |