7

我想在使用时获得响应时间urllib。我做了下面的代码,但这不仅仅是响应时间。我可以使用urllib或有任何其他方法来获取时间吗?

import urllib
import datetime

def main():
    urllist = [
        "http://google.com",
    ]

    for url in urllist:
        opener = urllib.FancyURLopener({})
        try:
            start = datetime.datetime.now()
            f = opener.open(url)
            end = datetime.datetime.now()
            diff = end - start
            print int(round(diff.microseconds / 1000))
        except IOError, e:
            print 'error', url
        else:
            print f.getcode(), f.geturl()

if __name__ == "__main__":
    main()
4

2 回答 2

17

省去一些麻烦并使用请求模块。在其响应中,它提供了一个名为“elapsed”的datetime.timedelta字段,让您知道请求花费了多长时间。

>>> import requests
>>> response = requests.get('http://www.google.com')
>>> print response.elapsed
0:00:01.762032
>>> response.elapsed
datetime.timedelta(0, 1, 762032)
于 2013-06-05T06:44:19.177 回答
3

我更喜欢 requests 库,但被迫使用 urllib3。我发现在 urllib3 中,response.elapsed.total_seconds()大致相当于:

import datetime
import urllib3

http = urllib3.PoolManager()

url_string = "http://google.com"
start = datetime.datetime.now()
response = http.request('GET', url_string)
end = datetime.datetime.now()
delta = end - start

elapsed_seconds = round(delta.microseconds * .000001, 6)
print(elapsed_seconds)
于 2020-04-21T17:53:19.187 回答