Python urllib2 не возвращает страницу https - PullRequest
0 голосов
/ 09 декабря 2011

Когда я пытаюсь опубликовать данные с http на https, urllib2 не возвращает нужную веб-страницу https, а веб-сайт запрашивает включение файлов cookie.

Чтобы получить первую страницу http:

    proxyHandler = urllib2.ProxyHandler({'http': "http://proxy:port" })
    opener = urllib2.build_opener(proxyHandler)
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0')]
    urllib2.install_opener(opener)
    resp = urllib2.urlopen(url)
    content = resp.read()

КогдаЯ извлекаю данные с указанной выше страницы и публикую данные на второй странице https, urllib2 возвращает статус успешного завершения 200, и страница запрашивает включение файлов cookie.

Я проверил данные записи, все в порядке.Я получаю файлы cookie с веб-сайта, но не уверен, отправляются ли они со следующим запросом или нет, поскольку я прочитал в документации по python, что urllib2 автоматически обрабатывает файлы cookie.

Чтобы получить вторую страницу https:

    resp = urllib2.urlopen(url, data=postData)
    content = resp.read()

Я также пытался установить прокси-обработчик на это, как прочитано в ответе на подобную проблему где-то в stackoverflow, но получил тот же результат:

    proxyHandler = urllib2.ProxyHandler({'https': "http://proxy:port" })

1 Ответ

1 голос
/ 09 декабря 2011

urllib2 «обрабатывает» куки в ответах, но не сохраняет их автоматически и повторно отправляет с последующими запросами.Для этого вам понадобится модуль cooklib .

В документации есть несколько примеров, показывающих, как он работает с urllib2.

...