在python 3中,来自urllib.request模块的urlopen函数检索URL的目标,或者只是打开与URL的连接作为文件句柄还是我完全丢失了它?我想了解它的工作原理。
基本上我想找到从URL下载文件所花费的时间。我该怎么做呢?
这是我的代码:
VERSION 1
import urllib
import time
start = time.time()
with urllib.request.urlopen('http://mirror.hactar.bz/lastsync') as f:
lastsync = f.read() #Do i need this line if i dont care about the data
end = time.time()
duration = end - start
VERSION 2
import urllib
import time
with urllib.request.urlopen('http://mirror.hactar.bz/lastsync') as f:
start = time.time()
lastsync = f.read() #Does this line do the actual data retrieval ?
end = time.time()
duration = end - start
答案 0 :(得分:0)
来自docs:
打开URL网址,可以是字符串或请求对象。
...
此函数返回一个类似文件的对象,其中包含三个附加方法:
- geturl() - 返回检索到的资源的URL,通常用于确定是否遵循重定向
- info() - 以mimetools.Message实例的形式返回页面的元信息,例如标题(请参阅HTTP标题的快速参考)
- getcode() - 返回响应的HTTP状态代码。
另请注意,从Python 3.0开始,urllib.request.urlopen()
和urllib.urlopen()
是等效的。
编辑所以,time
:
# urllib.request for < python 3.0
import urllib
import time
start = time.time()
# urllib.request.urlopen() for < python 3.0
response = urllib.urlopen('http://example.com/')
data = response.read() # a `bytes` object
end = time.time()
duration = end - start