2
import requests

for i in range(3):
    g = requests.get('http://some-url/')
    print "request done"

对于每个开始的请求,“它”是否在执行另一个请求之前等待响应到达(完全完成加载响应)?

我已经将完成这些请求所需的时间与来自我的浏览器的请求进行了比较,并且使用Requests的加载时间要快得多。我不确定这是否仅仅是因为我的浏览器执行 javascript、加载图像等,还是因为 Requests 的工作方式。

4

2 回答 2

4

是的,requests.get是同步操作。它等待页面内容作为 str 被拉入 python。您看到的时间差异确实是由于执行 javascipt 和在浏览器中获取附加文件造成的。

在 firefox webconsole 中,您可以看到下载页面内容所需的时间。这个时间应该大致等于您看到的请求时间。

于 2013-02-02T13:20:32.977 回答
4

是的,每个请求都是同步完成的,所以下一个请求只有在前一个请求完成后才会开始。引用发行说明

0.13.0 (2012-05-29)

删除 Requests.async 以支持grequests

于 2013-02-02T13:20:56.380 回答