我目前正在尝试抓取嵌入式 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_id
和 domain
组合成一个字符串创建的,例如 "2078710307_headlines.yahoo. co.jp”
。然后它通过位于 player.script.js
中的混淆器运行。
混淆器看起来有点复杂,似乎是故意让它难以理解。下面是混淆器主函数的调试器屏幕截图,以及它调用的子例程。
虽然有点令人生畏,但将其转换为 Python 程序似乎并非不可能,这样您就可以通过混淆任何 space_id
和 来获得
。祝你好运。ak
您在 youtube-dl 中需要的域名
关于javascript - 抓取一个json请求 `ak`参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56328586/