javascript - 抓取 m3u8 文件的路径

标签 javascript web-scraping blob http-live-streaming m3u8

我目前正在尝试抓取嵌入视频的 m3u8 url 路径中的唯一值以供自学。网站上的每个嵌入视频共享相同的 url 路径(除了唯一值之外)。

例如,来自https://headlines.yahoo.co.jp/videonews/ann?a=20190526-00000026-ann-int页面,我可以通过检查器的网络选项卡找到m3u8路径:

https://gw-yvpub.c.yimg.jp/v1/hls/CFukHuaO2W13gxbJ/video.m3u8

这里的唯一值是CFukHuaO2W13gxbJ。但是,我一生都无法在页面源中的任何位置或检查器选项卡中的任何其他位置找到该值。是否可以在页面源或生成此 url 的位置找到此 url 链接?

附注:在请求调用 m3u8 文件之前,会对此 blob url 进行请求调用:

Blob :https://s.yimg.jp/f23ed5ca-7a95-4409-bf66-c26c577157d2

预先感谢您的指导!

最佳答案

m3u8 url 出现在对此 url 的请求中:

https://feapi-yvpub.yahooapis.jp/v1/content/1576087?appid=dj0zaiZpPVZMTVFJR0FwZWpiMyZzPWNvbnN1bWVyc2VjcmV0Jng9YjU-&output=json&space_id=2078710316&domain=headlines.yahoo.co.jp&ak=044ddff76151606c2d97ada9daa3ea45&device_type=1100&thumb_width=1204&thumb_height=676&thumb_priority=l&thumb_bd=0

该值来自您在此处给出的网址:

<script type="text/javascript">
YAHOO.JP.srch.dlink.onLoad(function(sl) {
    sl.setParams({"serviceCode":"nws","appID":"dj0zaiZpPWlzQ3RiOHo1cGxBNSZzPWNvbnN1bWVyc2VjcmV0Jng9ODQ-","articleID":"20190526-00000026-ann","category":null,"mediaID":"ann","spaceID":2078710316,"linkCount":"5","launchAfterDocLoad":false});
});
</script>

例如,以及看到的内容 ID

<script type="text/javascript" class="yvpub-player" src="https://s.yimg.jp/images/yvpub/player/js/embed.js?contentid=1576087&amp;width=602&amp;height=338&amp;propertyname=jp_news&amp;spaceid=2078710316&amp;repeat=0&amp;recommend=0&amp;autostart=1" data-composed="1"></script>

这个044ddff76151606c2d97ada9daa3ea45我认为是一个访问 key 。不确定这是否是您可以跨请求重复使用的东西。也许还可以查看 API 文档(如果有)。有一点随机散列的味道(可能由长度决定) - 这可能会带来问题。

关于javascript - 抓取 m3u8 文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314549/

相关文章:

javascript - 检测英语或法语中未找到的所有口音

java - 如何在 Java 中筛选 Ajax 站点?

php - 如何在 PHP 中从 MySQL 数据库下载基于 blob 的文件?

oracle - 如何在ORACLE中使用SQL UPDATE命令将BLOB数据 append/连接到BLOB列

javascript - 用输入值更新 DIV 的文本

javascript - this.state 在函数 React JS 组件中使用时未定义

javascript - 如何通过JS更改div上的数据值

python - 网页抓取 : How do I get 'href' links and scrape table from them

Python3 和 BeautifulSoup 从谷歌抓取地址返回 "[]"而不是地址

mysql - 使用 laravel 6 显示 Blob 列中的文档