Python:获取时间到HTTP请求的最后一个字节

时间:2018-11-30 04:07:42

标签: python python-requests urllib

我想获取到HTTP请求的最后一个字节(TTLB)的时间。我尝试了以下方法:

1) requests.elapsed -但这会返回标头完成加载后的时间

2)请求(来自Measuring the HTTP response time with requests library in Python. Am I doing it right?)-可以,但是我希望时间为3秒,而不是0.5秒,所以我想测试另一种方法。

3) urllib (来自Getting TTFB (time till first byte) for an HTTP Request)-我位于代理服务器后面,很难使代理服务器正常工作。我已经尝试过此(How can I open a website with urllib via proxy in Python?),但是它不起作用。我收到的错误是:urllib.error.HTTPError: HTTP Error 401: Unauthorized。我正在使用的代理详细信息是正确的(可应要求提供)。

我正在使用的代码:

def url_time(url):
    proxydict = {'http': 'http://xxxx', 'https': 'https://xxxx'}

    proxy_support = urllib.request.ProxyHandler(proxydict)
    opener = urllib.request.build_opener(proxy_support)
    urllib.request.install_opener(opener)

    start_time = time.time()
    stream = urllib.request.urlopen(url)
    output = stream.read()
    end_time = time.time()
    stream.close()

    return end_time-start_time

感谢有人对使用请求获取TTLB或使urllib在代理之后起作用有任何想法-我使用的是Python 3.6。谢谢。

0 个答案:

没有答案