4

现在我正在这样做:(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.

正在发生的事情是这样的;

我不断收到来自服务器的 gzip 响应并且我保持登录状态(我正在获取一些如果我没有登录则不可用的内容)但我认为每个请求 opener.open 之间的连接正在断开;

我认为这是因为连接速度很慢,而且似乎每次都有新的连接。两个问题:

a)我如何测试实际上连接是否保持活动/死亡
b)如何使其在其他 url 请求之间保持活动?

小心 :)

4

2 回答 2

1

这将是一个非常延迟的答案,但是:

您应该看到urllib3。它适用于 Python 2.x,但当您看到他们的 README 文档时,您就会明白这一点。

是的,默认情况下 urllib 不会保持连接,我现在正在为 Python 3 实现 urllib3 以留在我的工具包中:)

于 2011-06-28T23:27:19.427 回答
0

如果你还不知道,python-requests 提供了 keep-alive 功能,这要归功于 urllib3。

于 2013-07-10T08:53:13.207 回答