Можно ли обновить соединение, созданное с помощью urllib2.urlopen?

Я получаю данные с URL-адреса, используя urllib2.urlopen:

from urllib2 import urlopen
...
conn = urlopen(url)
data = conn.read()
conn.close()

Предположим, данные не «вышли», как я ожидал.

Как мне лучше всего прочитать это снова?

В настоящее время я повторяю весь процесс (открыть, прочитать, закрыть).

Есть ли способ лучше (возможно, какое-то обновление соединения)?


person barak manos    schedule 14.08.2014    source источник


Ответы (3)


Когда вы вызываете urlopen по URL-адресу, Python выполняет HTTP-запрос GET и возвращает ответ; каждая из этих пар запрос-ответ по своей природе является отдельными соединениями. Вам нужно повторить процесс для каждого URL-адреса, который вы хотите запросить, хотя вы не t действительно нужно закрыть свой urlopen-ответ.

person Mark Ignacio    schedule 14.08.2014
comment
Спасибо за подробный ответ. Кстати, хотя вам действительно не нужно закрывать свой ответ urlopen, он неверен в соответствии с перенаправленной ссылкой. - person barak manos; 15.08.2014

Нет, единственный способ получить новые данные.

person rhodysurf    schedule 14.08.2014

вы могли закрыть urllib после использования для обновления при раннем открытии

пытаться:

импортировать json, urllib, а 1: url = 'http://project/JsonVanner.php' response = urllib. urlopen (url) data = json.loads (response.read ()) для x в данных: print x ['Etat'] if (x ['Etat'] == 'OFF'): print ('vanne fermer') print ((int (x ['IDVanne']) * 10) +0) else: print ('vanne ouverte') print ((int (x ['IDVanne']) * 10) +1) response.close ()

person radhouen    schedule 02.11.2016