Как остаться в живых в 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.

Что происходит, это то;

Я продолжаю получать gzipped ответы от сервера, и я остался в системе (я получаю некоторый контент, который недоступен, если я не вошел в систему), но я думаю, что соединение разрывается между каждым запросом opener.open;

Я думаю, что из-за того, что соединение происходит очень медленно, и кажется, что каждый раз появляется новое соединение. Два вопроса:

а) Как проверить, действительно ли соединение остается живым / умирает?
б) Как сделать так, чтобы он оставался в живых между запросами других URL?

Береги себя:)

2 ответа

Это будет очень запоздалый ответ, но:

Вы должны увидеть urllib3. Это для Python 2.x, но вы поймете эту идею, когда увидите документ README.

И да, urllib по умолчанию не поддерживает соединения, теперь я реализую urllib3 для Python 3, чтобы он оставался в моей сумке с инструментами:)

Просто, если вы еще не знали, Python-запросы предлагают функцию поддержки активности благодаря urllib3.

Другие вопросы по тегам