美文网首页大数据 爬虫Python AI SqlPython编程
用Python批量获取世界各地的视频,只有你喊不出名字的,没有我

用Python批量获取世界各地的视频,只有你喊不出名字的,没有我

作者: 傻逼平台瞎几把封号 | 来源:发表于2021-12-24 16:14 被阅读0次

    兄弟们,一般国外的电影电视剧,都找不到资源,很多人就对此束手无策了。
    这个时候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
    

    相关文章

      网友评论

        本文标题:用Python批量获取世界各地的视频,只有你喊不出名字的,没有我

        本文链接:https://www.haomeiwen.com/subject/fewlqrtx.html