Requests 有可能像 PyCURL 那样拿到各个阶段的耗时么:DNS 时间,连接时间,下载时间……

2013-11-03 03:16:46 +08:00
 Livid
4739 次点击
所在节点    Python
4 条回复
9hills
2013-11-03 08:47:50 +08:00
我瞅了瞅requests的代码,貌似不能。requests自己实现了一个urllib3做底层

PyCURL是怎么拿到的?
est
2013-11-03 10:08:58 +08:00
可以拿到,需要hack。

DNS时间 -> socket 不直接 connect(), 先 gethostbyname(),计时得到

连接时间 -> socket 去connect() 直连IP用个计时

请求时间 -> socket 去send()计时

返回时间 -> socket.recv() 计时
lovesky
2013-11-03 18:06:55 +08:00
@est 我想这里的Requests应该指的是这个:Requests: HTTP for Humans

http://www.python-requests.org/en/latest/
https://pypi.python.org/pypi/requests
est
2013-11-03 19:16:23 +08:00
@lovesky 知道。。。python里边的对象都是可以hook的。


import socket

socket = 1
import requests

然后你试试还能用requests不?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/87874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX