문제

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/HTTPS 트래픽에 HTTP 프록시를 사용하고 있습니다 (환경에서 설정 - Linux Machine).
2) 나는 Wireshark로 트래픽을 보았고 트래픽이 일반 HTTP를 통해 전송되는지 확인할 수 있습니다 (게시물의 내용을 볼 수 있으며 Mechanize는 웹 브라우저와 동일한 요청을 프록시에 보내지 않습니다. 후자는 보냅니다. login.us.site.com:443을 연결하고 메커니즈 게시물 만 연결하십시오 https://login.us.site.com). 그러나 프록시를 떠날 때 데이터가 어떻게되는지 모르겠습니다. 아마도 대상 사이트에 대한 SSL 연결을 설정합니까?

도움이 되었습니까?

다른 팁

mechanize 용도 urllib2 내부적으로 그리고 나중에는 버그가있었습니다. HTTPS Over (Squid) 프록시가 실패합니다. 버그는 Python 2.6.3에 고정되어 있으므로 Python을 업데이트하면 문제가 해결됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top