使用Python请求模块通过HTTP跟踪下载资源的跟踪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python请求模块通过HTTP跟踪下载资源的跟踪相关的知识,希望对你有一定的参考价值。

我在访问en.wikipedia.org/wiki/Hello的同时保持打开Chrome控制台:在网络选项卡中我可以检查HTTP请求的内容:第一个要调用的是:

GET https://en.wikipedia.org/wiki/Hello -> 200

然后,处理了许多其他HTTP请求:维基百科徽标.png,一些CSS,脚本和其他文件被下载到我的浏览器,它们一起呈现维基百科的实际页面。

有了requests,我想做同样的事情:简单

requests.get("https://en.wikipedia.org/wiki/Hello")

将返回Hello页面的HTML文档,但不会下载其他资源。

我想跟踪为打开页面而打开的连接数以及下载的元素;上面的GET请求不会返回图像,CSS或脚本。

我想我错过了一些重要的事情:谁知道完全加载网页所需的所有必要资源是什么?

我问这个是因为我想(与requests)知道下载了哪些资源以及获取它们需要多少连接。

我认为服务器是知道页面需要加载的人,所以服务器应该将这些信息告诉客户端,但我遗漏了哪里:我没有在HTTP请求头中找到任何内容。

我需要这个列表/字典/ JSON /完全呈现页面所需的任何资源,所以我可以用Python手动完成。

答案

高五我自己XD

在第一个下载的资源中(列出)其他所需资源:HTML文档。我要解析它(BeautifulSoup4)并得到我需要的东西(<link rel=... href=... />),这应该能够获得页面所需的下载和资源数量。

至于连接数,我读到了HTTP keep-alive:所以如果使用单个TCP连接来下载资源,我不必担心打开了多少连接,因为HTTP 1.1连接默认保持活动状态。我应该检查它是否使用HTTP 1.0,如果是这样,请查找Connection: keep-alive标头。

以上是关于使用Python请求模块通过HTTP跟踪下载资源的跟踪的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 请求模块下载并保存 PDF 文件

使用请求(不是 GET)在 Python 中通过 Post HTTP Request 下载 PDF

python - 怎样使用 requests 模块发送http请求

Python Http 请求

在 python 中对 torrent 跟踪器的 HTTP 请求

Python爬虫 urllib -- urllib 下载资源urllib 请求对象的定制(URL完整组成介绍HTTP协议和HTTPS的区别请求对象的定制)