用Python批量获取世界各地视频,只有你喊不出名字的,没有我爬不到的
兄弟们,一般国外的电影电视剧,都找不到资源,很多人就对此束手无策了。
这个时候python就很有用了,只要叫得出名字的,都可以几行代码搞定~
#我还给大家准备了这些资料,直接在群里就可以免费领取了。 #一群:872937351 (群满了的话加二群) #二群:924040232 #python学习路线汇总 #精品Python学习书籍100本 #Python入门视频合集 #Python实战案例 #Python面试题 #Python相关软件工具/pycharm永久激活
import requests # 数据请求模块 pip install requests import re # 正则表达式模块 内置模块 url = 'https://www.meiju11.com/Play/7816-0-0.html' headers = { 'Referer': 'https://www.meiju11.com/Play/7816-0-0.html', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' } response = requests.get(url=url, headers=headers) response.encoding = response.apparent_encoding # 自动识别编码转码 # print(response.text) # 每个网站数据结构都不一样, 都是需要重新去数据结构 title = re.findall("var playn = '(.*?)',", response.text)[0] video_data = re.findall('第\d+集\$(.*?)\$rrm3u8', response.text) print(title) print(video_data) num = 1 for index in video_data: video_name = f'{title}第{num}集' print(video_name, index) # 1. 发送请求, 对于 url地址发送请求 # 确定请求的网址 video_url = f'https://www.meiju11.com/ckplayerx/m3u8.php?url={index}&f=ck_m3u8' # headers 请求头 用来伪装python代码的 不被识别出来是爬虫程序 # User-Agent 用户代理 浏览器基本身份标识 建议都加 # Referer 防盗链 告诉服务器我们的发送请求url地址 是从哪里跳转过来 # 加headers就穿个衣服 , 不加裸奔.... 有时候只是加一个UA 相当于你只有裤头 # Cookie 用户信息, 检测是否有登陆账号 # Host 域名 headers_1 = { 'Referer': 'https://www.meiju11.com/js/player/rrm3u8.html', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' } # 通过requests这个模块里面get请求方法 对于url地址发送请求, 并且携带上headers请求头 最后用response变量接收返回数据 response = requests.get(url=video_url, headers=headers_1) # <Response [200]> 响应对象 200 状态码表示请求成功 # 虽然请求成功, 但是没有得到自己想要的数据内容..... # print(response.text) 文本数据 # 3. 解析数据, 提取我们想要的数据内容 视频播放地址 m3u8_url = re.findall("url: '(.*?)'", response.text)[0] print(m3u8_url) # 4. 发送请求, 对于这个播放地址发送请求 m3u8_data_1 = requests.get(url=m3u8_url, headers=headers_1).text # . 是匹配任意字符(除了换行\n) * 匹配前一个字符0或者无限个 m3u8_data = re.sub('#EX.*', '', m3u8_data_1).split() for link in m3u8_data: # https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/a0941a88a1784001b46560ea05257010_0000031.ts # a0941a88a1784001b46560ea05257010_0000000.ts # 6. 解析数据, 提取所有ts文件 ts_url = 'https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/' + link # 7. 保存数据 (二进制数据[图片/音频/视频/特定格式的文件]) 进行发送请求 获取数据 # ts_content = requests.get(url=ts_url).content # response.content 获取二进制数据 # # a 追加保存 b 二进制模块 # with open(video_name + '.mp4', mode='ab') as f: # f.write(ts_content) print(ts_url) num += 1