javascript - 抓取一个json请求 `ak`参数值

标签 javascript json web-scraping hash m3u8

我目前正在尝试抓取嵌入式 m3u8 url 路径以进行自学。

到目前为止,我设法确定请求会生成带有 m3u8 信息的 json 响应。

例如,https://headlines.yahoo.co.jp/videonews/ann?a=20190527-00000051-ann-soci页面会发出以下请求:

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

为了请求成功,contentid (1579522), appid, space_id, device_type , 和 ak 参数是必需的。我设法抓取了 id 和 device_type 值,但不知道从哪里获取 ak 值,我猜它代表访问 key 。关于如何获得此值的任何想法?

旁注:我通过不同的浏览器访问了该页面,它们都在请求中生成了相同的 ak 参数值,所以我猜测该值并不是唯一地链接到每个 session ,但我可能是错误的。

提前致谢!

最佳答案

神秘论证 ak 是通过首先将 space_iddomain 组合成一个字符串创建的,例如 "2078710307_headlines.yahoo. co.jp”。然后它通过位于 player.script.js 中的混淆器运行。

混淆器看起来有点复杂,似乎是故意让它难以理解。下面是混淆器主函数的调试器屏幕截图,以及它调用的子例程。

enter image description here

enter image description here

虽然有点令人生畏,但将其转换为 Python 程序似乎并非不可能,这样您就可以通过混淆任何 space_id 来获得 ak您在 youtube-dl 中需要的域名。祝你好运。

关于javascript - 抓取一个json请求 `ak`参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56328586/

相关文章:

javascript - Tab 内的 HTML 加载器

javascript - import {} from '.' 的作用是什么?

javascript - 在 javascript 中将对象 (json) .json 保存在文件中

javascript - 查找 id 的正则表达式

javascript - jquery:工具提示在空格后不显示数据

python - 通过python从xml数据中提取字符串日期

javascript - PHP - 抓取 JavaScript 网站

sql - Postgres : push unique object into an array of jsonb

json - HTTP 原生插件 (IONIC 3)

Python 网页抓取 - html 解析