如何在HTTP/1.1中使用python urllib保持连接活跃
目前我在做的是这个:(Python3,urllib)
url = 'someurl'
headers = '(('HOST', 'somehost'), /
('Connection', 'keep-alive'),/
('Accept-Encoding' , 'gzip,deflate'))
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor())
for h in headers:
opener.addheaders.append(x)
data = 'some logging data' #username, pw etc.
opener.open('somesite/login.php, data)
res = opener.open(someurl)
data = res.read()
... some stuff here...
res1 = opener.open(someurl2)
data = res1.read()
etc.
发生的事情是这样的:
我一直从服务器那里收到压缩过的响应,而且我保持了登录状态(我在获取一些内容,如果不登录就无法访问),但我觉得每次请求的时候连接都在断开。
我这么想是因为连接速度很慢,而且每次看起来都像是重新建立了连接。有两个问题:
a) 我怎么测试连接到底是保持活着还是断开了?
b) 如何让连接在请求其他网址时保持活着?
保重哦 :)
2 个回答
0
如果你还不知道的话,python-requests库提供了一个保持连接的功能,这要归功于urllib3。
1
这个回答可能来得有点晚,不过:
你可以看看 urllib3。它是为Python 2.x准备的,但你看他们的README文档就能明白它的意思。
对了,urllib默认情况下不会保持连接活着,我现在正在为Python 3实现urllib3,准备把它放进我的工具箱里 :)