在Python中,urllib的响应时间

15 浏览
0 Comments

在Python中,urllib的响应时间

我想在使用urllib时获取响应时间。我写了下面的代码,但它不仅仅是响应时间。我能否使用urllib获取时间或者有其他方法吗?\n

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()

0
0 Comments

Response time for urllib in python这个问题的出现的原因是作者不喜欢使用urllib3库,而更倾向于使用requests库。作者发现在urllib3中,response.elapsed.total_seconds()方法可以用来计算请求的响应时间,但是作者被迫使用urllib3库时,需要通过其他方式来获取响应时间。

解决方法是通过使用datetime模块来获取请求的开始和结束时间,然后计算时间差来得到响应时间。具体的代码如下:

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)

以上代码通过urllib3.PoolManager()创建一个HTTP连接池管理器,然后使用http.request()方法发送GET请求获取响应。在发送请求之前记录当前时间为开始时间,请求结束后记录当前时间为结束时间。通过计算时间差来得到响应时间,最后将响应时间打印出来。

通过这种方式,作者可以在使用urllib3库时获取到请求的响应时间,达到了与response.elapsed.total_seconds()方法相同的效果。

0
0 Comments

在使用Python中的urllib库发送网络请求时,无法直接获取响应时间的问题。使用urllib库发送请求后,我们无法直接从响应中获取请求的耗时信息。然而,我们可以通过使用requests模块来解决这个问题。

requests模块是一个功能强大且易于使用的第三方库,它提供了许多方便的功能,包括直接获取请求的响应时间。在requests模块的响应对象中,有一个名为'elapsed'的datetime.timedelta字段,它记录了请求的耗时时间。

下面是使用requests模块获取响应时间的示例代码:

import requests
response = requests.get('http://www.google.com')
print(response.elapsed)

运行以上代码,我们可以得到类似以下输出:

0:00:01.762032

在上述示例中,我们使用requests模块发送了一个GET请求,并将响应对象存储在response变量中。然后,我们通过访问response.elapsed字段来获取请求的耗时时间。

需要注意的是,response.elapsed返回的是一个datetime.timedelta对象,它可以提供更多关于耗时的详细信息。例如,我们可以通过访问response.elapsed.total_seconds()来获取请求的总耗时(以秒为单位)。

总结起来,通过使用requests模块,我们可以轻松地获取Python中urllib库无法直接提供的请求响应时间信息。这使得我们能够更好地监测和优化我们的网络请求。

0