Подтвердить что ты не робот

Механизировать отправку формы входа с http на https

У меня есть веб-страница, содержащая форму входа, которая загружается через HTTP, но отправляет данные через HTTPS.

Я использую python-mechanize для входа на этот сайт, но кажется, что данные передаются через HTTP.

Мой код выглядит следующим образом:

import mechanize
b = mechanize.Browser()
b.open('http://site.com')
form = b.forms().next()  # the login form is unnamed...
print form.action        # prints "https://login.us.site.com"
form['user'] = "guest"
form['pass'] = "guest"
b.form = form
b.submit()

Когда форма отправляется, соединение выполняется через HTTP и содержит что-то вроде:

send: 'POST https://login.us.site.com/ HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 180\r\nHost: login.us.site.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n'...

Может ли кто-нибудь подтвердить это и в конечном итоге опубликовать решение, чтобы форма была отправлена ​​через HTTPS?

Далее отредактируйте:

1) Я использую HTTP-прокси для трафика http/https (установленного в среде - Linux-машина)
2) Я наблюдал за трафиком с Wireshark, и я могу подтвердить, что трафик отправляется через обычный HTTP (я вижу, что содержимое POST и механизация не отправляют те же запросы прокси в качестве веб-браузера - последний отправляет CONNECT login.us.site.com:443, а механизировать только POST https://login.us.site.com). Однако я не знаю, что происходит с данными, поскольку он оставляет прокси; возможно, он устанавливает соединение ssl с целевым сайтом?

4b9b3361

Ответ 2

mechanize использует urllib2 внутренне, а позже имеет ошибку: пропущен HTTPS over (Squid). Исправлена ​​ошибка в Python 2.6.3, поэтому обновление Python должно решить вашу проблему.