【发布时间】:2018-02-25 01:21:28
【问题描述】:
我在 Python 3 中使用 requests 库已经有一段时间了,并决定创建一个测试程序。对于这个程序,我以网站https://ytmp3.cc/ 为例。但事实证明,在客户端似乎发生了很多事情。
正在生成一些密钥和其他内容,我一直在使用 Firefox 的内置网络监视器来确定这是在哪些请求中发出的,但没有运气。
据我所知,请求库无法通过发出更多请求来保持“页面”打开并修改 DOM 和内容。
任何人都可以看一看,并对特殊密钥是如何生成的,以及我如何根据自己的请求获得这些信息给出一个合格的猜测。
Fx 加载网页时,第一个请求是针对根的,响应包含网页 HTML。我注意到在底部,有一个包含一些键和数字的 url。
<script id="cs" src="js/converter-1.0.js?o=7_1a-a&=_1519520467"></script>
id 7_1a-a
number _1519520467`
这用于发出下一个请求,但随后会发出很多后续请求,并且还会发出一些其他密钥。但我找不到这些来自哪里,因为它们不是由请求返回的。
我知道在插入 Youtube 链接时,会向 url 发出请求,如下所示。
https://d.ymcdn.cc/check.php?callback=jQuery33107639361236859977_1519520481166&v=eVD9j36Ke94&f=mp3&k=7_1a-a&_=1519520481168
这将返回以下内容:
jQuery33107639361236859977_1519520481166({"sid":"21","hash":"2a6b2475b059101480f7f16f2dde67ac","title":"M\u00d8 - Kamikaze (Official Video)","ce":1,"error":""})
由此我可以使用上面的哈希构造下载 url:
https://yyd.ymcdn.cc/ + 2a6b2475b059101480f7f16f2dde67ac (hash) + /eVD9j36Ke94(YouTube 视频 ID)
但是我怎么得到
jQuery33107639361236859977_1519520481166&v=eVD9j36Ke94 和 1519520481168
创建请求需要哪些内容?
【问题讨论】:
标签: javascript python web-scraping python-requests client-side