zoukankan      html  css  js  c++  java
  • 用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
  • 相关阅读:
    pycharm快捷键及一些常用设置
    常用笔记
    python开发之路day01
    [转]C++ Unicode SBCS 函数对照表
    PB15151793+PB16001775
    《梦断代码》读书笔记——第四周
    《人件》读书笔记——第三周
    《人月神话》读书笔记——第一周
    软件工程个人作业——词频统计
    《创新者》读书笔记——第五周读书笔记
  • 原文地址:https://www.cnblogs.com/hahaa/p/15727844.html
Copyright © 2011-2022 走看看