使用Python请求模块

时间:2017-12-19 12:15:23

标签: http browser python-requests httprequest

我访问 en.wikipedia.org/wiki/Hello ,同时保持打开Chrome控制台:在网络标签中,我可以检查HTTP请求的内容:第一个是叫做:

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

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

使用requests,我想做同样的事情:一个简单的

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

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

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

我认为我遗漏了一些重要内容:谁知道完全加载网页所需的所有必要资源是什么?

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

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

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

1 个答案:

答案 0 :(得分:0)

高五我自己XD

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

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