Python怎么实现抓取腾讯视频所有电影
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍"Python怎么实现抓取腾讯视频所有电影",在日常操作中,相信很多人在Python怎么实现抓取腾讯视频所有电影问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年01月22日Python怎么实现抓取腾讯视频所有电影
这篇文章主要介绍"Python怎么实现抓取腾讯视频所有电影",在日常操作中,相信很多人在Python怎么实现抓取腾讯视频所有电影问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python怎么实现抓取腾讯视频所有电影"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
运行环境
IDE丨pycharm
版本丨Python3.6
系统丨Windows
实现目的与思路
目的
实现对腾讯视频目标url的解析与下载,由于第三方vip解析,只提供在线观看,隐藏想实现对目标视频的下载
思路
首先拿到想要看的腾讯电影url,通过第三方vip视频解析网站进行解析,通过抓包,模拟浏览器发送正常请求,通过拿到缓存ts文件,下载视频ts文件,最后通过转换为mp4文件,即可实现正常播放
完整代码
import reimport os,shutilimport requests,threadingfrom urllib.request import urlretrievefrom pyquery import PyQuery as pqfrom multiprocessing import Pool''''''class video_down(): def __init__(self,url): # 拼接全民解析url self.api='https://jx.618g.com' self.get_url = 'https://jx.618g.com/?url=' + url #设置UA模拟浏览器访问 self.head = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} #设置多线程数量 self.thread_num=32 #当前已经下载的文件数目 self.i = 0 # 调用网页获取 html = self.get_page(self.get_url) if html: # 解析网页 self.parse_page(html) def get_page(self,get_url): try: print('正在请求目标网页....',get_url) response=requests.get(get_url,headers=self.head) if response.status_code==200: #print(response.text) print('请求目标网页完成....\n 准备解析....') self.head['referer'] = get_url return response.text except Exception: print('请求目标网页失败,请检查错误重试') return None def parse_page(self,html): print('目标信息正在解析........') doc=pq(html) self.title=doc('head title').text() print(self.title) url = doc('#player').attr('src')[14:] html=self.get_m3u8_1(url).strip() #self.url = url + '800k/hls/index.m3u8' self.url = url[:-10] +html print(self.url) print('解析完成,获取缓存ts文件.........') self.get_m3u8_2(self.url) def get_m3u8_1(self,url): try: response=requests.get(url,headers=self.head) html=response.text print('获取ts文件成功,准备提取信息') return html[-20:] except Exception: print('缓存文件请求错误1,请检查错误') def get_m3u8_2(self,url): try: response=requests.get(url,headers=self.head) html=response.text print('获取ts文件成功,准备提取信息') self.parse_ts_2(html) except Exception: print('缓存文件请求错误2,请检查错误') def parse_ts_2(self,html): pattern=re.compile('.*?(.*?).ts') self.ts_lists=re.findall(pattern,html) print('信息提取完成......\n准备下载...') self.pool() def pool(self): print('经计算需要下载%d个文件' % len(self.ts_lists)) self.ts_url = self.url[:-10] if self.title not in os.listdir(): os.makedirs(self.title) print('正在下载...所需时间较长,请耐心等待..') #开启多进程下载 pool=Pool(16) pool.map(self.save_ts,[ts_list for ts_list in self.ts_lists]) pool.close() pool.join() print('下载完成') self.ts_to_mp4() def ts_to_mp4(self): print('ts文件正在进行转录mp4......') str='copy /b '+self.title+'\*.ts '+self.title+'.mp4' os.system(str) filename=self.title+'.mp4' if os.path.isfile(filename): print('转换完成,祝你观影愉快') shutil.rmtree(self.title) def save_ts(self,ts_list): try: ts_urls = self.ts_url + '{}.ts'.format(ts_list) self.i += 1 print('当前进度%d/%d'%(self.i,len(self.ts_lists))) urlretrieve(url=ts_urls, filename=self.title + '/{}.ts'.format(ts_list)) except Exception: print('保存文件出现错误')if __name__ == '__main__': #电影目标url:狄仁杰之四大天王 url='https://v.qq.com/x/cover/r6ri9qkcu66dna8.html' #电影碟中谍5:神秘国度 url1='https://v.qq.com/x/cover/5c58griiqftvq00.html' #电视剧斗破苍穹 url2='https://v.qq.com/x/cover/lcpwn26degwm7t3/z0027injhcq.html' url3='https://v.qq.com/x/cover/33bfp8mmgakf0gi.html' video_down(url2)
视频缓存ts文件
这里都是一些缓存视频文件,每个只有几秒钟播放,最后需要合并成一个mp4格式的视频,就可以正常播放,默认高清下载
注意这里的进度因为使用多进程下载,进度仅供参考,没有确切显示进度,可以进文件夹查看正常进度,可以理解为显示一次进度,下载一个ts文件
实现效果
到此,关于"Python怎么实现抓取腾讯视频所有电影"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
文件
视频
电影
目标
腾讯
缓存
进度
错误
网页
信息
正在
准备
学习
检查
成功
思路
更多
浏览器
目的
第三方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
酒店建门锁系统数据库
四川乐创恒志网络技术有限公司
上海楼控管理软件开发报价
运动用品数据库
网络安全宣传周答题活动
主要的存储网络技术包括
个人信用贷款行业数据库
嘉定区市场软件开发有哪些
我的世界怎么成为服务器管理
多大内存配个服务器
网络安全存在问题
学软件开发的用什么电脑
全世界排名第四服务器
自己的服务器 怎么备案
hp服务器远程管理模块
梁溪区计算机网络技术推广
腾讯云服务器退款
山西城管通软件开发系统
网络安全院士讲话
火影忍者 服务器
深圳办公系统软件开发费用
国产服务器怎么用
怎么样创建数据库
买个服务器主机多少钱
网络技术基础协议字段长度
网络技术可行性报告
工业控制网络技术期末考试题
csgo哪个服务器匹配的人多
网络安全领导组的职责
可以自己买泡面去服务器泡吗