V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Get Google Chrome
Vimium · 在 Chrome 里使用 vim 快捷键
3dwelcome
V2EX  ›  Chrome

使用 chrome devtools protocol,来抓取视频网站的 m3u8 地址。

  •  
  •   3dwelcome · Jul 13, 2021 · 2953 views
    This topic created in 1753 days ago, the information mentioned may be changed or developed.

    正常来说,要获取一个视频网站的 m3u8 地址,需要先用 F12 进入 developer tool,再从 Network 面板里,按照 m3u8 关键字过滤一下,最后导出 https://t.wdubo.com/20210617/YyqGH3Ne/hls/index.m3u8 之类的地址。

    然而,现在网站为了防止爬虫,中间那串 YyqGH3Ne 是随机数。一个视频还好,几十集的电视连续剧,用这种方法挨个去点每一集,就很繁琐。

    可以改用 Chrome Devtools Protocal 接口,用后台来控制 chrome 的 url 访问,network 监控和全自动化 url 过滤和记录。


    以 chrome v88 来举例

    1. 用 chrome.exe --remote-debugging-port=9222 --disable-gpu about:blank 参数启动浏览器。

    2. 访问 http://127.0.0.1:9222/json,获取 about:blank 页面的[pageid]

    3. 用支持 websocket 的语言写一段控制代码,用 websocket 协议和 chrome 建立后台控制连接 (地址为 ws://127.0.0.1:9222/devtools/page/[pageid]

    4. 发送命令 Network.enable,让 chrome 打开所有网络监控回调(相当于 network 面板监控)

    5. 循环运行 JS 脚本 Runtime.evaluate, 参数为 document.location.href='http://视频网站.com/某电视剧 /第 1 集.html'

    6. 抓取页面里,动态产生的所有 network 事件。用正则对 url 进行过滤,保存当前的 m3u8 真实地址。

    7. 重复执行第 5 步,直到所有电视剧的所有集数保存完毕。

    4 replies    2021-07-13 13:27:22 +08:00
    chachalover
        1
    chachalover  
       Jul 13, 2021
    supermoonie
        2
    supermoonie  
       Jul 13, 2021 via iPhone   ❤️ 1
    巧了,我做的是封装 cef,直接监听网络调用
    3dwelcome
        3
    3dwelcome  
    OP
       Jul 13, 2021
    @supermoonie cef 以前也玩过,接口很多,特别是和 C++跨语言调用,挺有意思的。

    貌似监听网络,有一大堆方法。可以走 http/https proxy 代理,写 chrome 扩展监听的,有早期 chrome://net-internals,还有直接用 chrome devtool for devtool,把过滤后的 network 面板 url 列表数据导出来的,五花八门。
    supermoonie
        4
    supermoonie  
       Jul 13, 2021 via iPhone
    @3dwelcome 其实 cdp 的实现现在很多了,puppeteer 可能是比较有名的了,其他语言也都有实现,不用自己写
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   967 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 23:11 · PVG 07:11 · LAX 16:11 · JFK 19:11
    ♥ Do have faith in what you're doing.