兄弟们,一般国外的电影电视剧,都找不到资源,很多人就对此束手无策了。
这个时候python就很有用了,只要叫得出名字的,都可以几行代码搞定~
获取结果
代码展示
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
网友评论