python实战:为了看动漫,解析视频网站,进行本地存储。

python实战:为了看动漫,解析视频网站,进行本地存储。,第1张

python实战:为了看动漫,解析视频网站,进行本地存储。


为了看动漫无职转生,找到了一个网站,进行本地存储,同样的ts文件

文章目录

1、访问网站2、保存路径3、m3u8路径4、对每个ts文件进行请求效果图 代码整合


1、访问网站

提示:一定要带上user-agen。

2、保存路径

3、m3u8路径

4、对每个ts文件进行请求

提示:每请求一次就存入一次,全部合成会报错。

效果图

代码整合
import re
from tqdm import tqdm
import requests
from lxml import etree
import os


headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}


url_l = 'http://www.ynzdhc.com/cc_play/bJDW5N-1-2.html'             #首页url

res_list = requests.get(url_l,headers=headers)                  #第一次请求找到电影名字

r = etree.HTML(res_list.text)

name = "".join(r.xpath('//div[@]//text()')).strip()            #电影名字

outfile_name = 'D:/PyCharm 2021.2.2/viodes' + name + '.mp4'            #保存路径

if os.path.exists(outfile_name):                #判断是否存在相同名字的电影,存在就删除。
    os.remove(outfile_name)

m3u8_list = ''.join(re.findall('url":"(.*?)","url_next',res_list.text)[0].split('\'))          #找到m3u8的url进行请求

resq_m3u8=  requests.get(m3u8_list,headers=headers)

m3u8 = m3u8_list.split('.com')[0]+'.com' +''.join(re.findall('n(.*?).m3u8',resq_m3u8.text))+'.m3u8'        #从M3u8找到正确的路径请求

m3u8_ts =requests.get(m3u8,headers=headers)

url_date =  re.findall(r'EXTINF:.*,n(.*?)n', m3u8_ts.text)            #找到每个ts文件

for url_ts in tqdm(url_date,desc=f"正在请求 {name}"):                     # 将每个ts文件进行请求


    link_content = requests.get(url_ts, headers=headers, timeout=25).content  # 字节模式进行请求

    with open(outfile_name, 'ab+') as f:
        f.write(link_content)  # 打开文件进行存储


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5721089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存