抓取 json 请求 `ak` 参数值

Scraping a json request `ak` parameter value

我目前正在尝试抓取嵌入式 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)、appidspace_iddevice_typeak参数.我设法抓取了 id 和 device_type 值,但不知道从哪里获取 ak 值,我猜它代表访问密钥。关于如何获得此值的任何想法?

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

提前致谢!

神秘论证 ak 是通过首先将 space_iddomain 组合成一个字符串(例如 "2078710307_headlines.yahoo.co.jp")而创建的。然后通过位于 player.script.js.

的混淆器 运行

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

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