2013-10-24 5 views
1

httplib2을 사용하여 웹 페이지에 로그인하려고합니다. 나는 단순히 창 Chrome 시크릿에서 다음 URL을 열어 페이지에 로그인 할 생각은 : 불행하게도,이Python httplib2 : HTTPS 로그인에 실패했습니다.

from httplib2 import Http 
h = Http(disable_ssl_certificate_validation=True) 
resp, content = h.request('https://domain.com/auth?name=USERNAME&pw=PASSWORD') 

:

https://domain.com/auth?name=USERNAME&pw=PASSWORD 

나는 httplib2이 로그인을 모방하려면 다음 코드를 했어요 요청으로 인해 로그인에 성공하지 못합니다.

내가 크롬에서 제공 일치하도록 요청 헤더를 변경 시도 :

headers = { 
    'Host': 'domain.com', 
    'Connection': 'keep-alive', 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36', 
    'Accept-Encoding': 'gzip,deflate,sdch', 
    'Accept-Language': 'en-US,en;q=0.8' 
} 
resp, content = h.request('https://domain.com/auth?name=USERNAME&pw=PASSWORD', 'GET', headers=headers) 

이 약간 응답을 변경,하지만 여전히 로그인에 성공으로 이어질하지 않습니다.

Wireshark으로 실제 네트워크 트래픽을 검사 해 보았습니다.하지만 HTTPS로 암호화되었으므로 실제 트래픽을 볼 수 없습니다.

Chrome과 httplib2 간의 요청의 차이점을 아는 사람이 있습니까? 어쩌면 httplib2가 내 머리글 중 일부를 바꿀까?

+0

당신이 성공적인 로그인 후 리디렉션입니까? 도중에 쿠키가 설정되어 있습니까? – alko

+2

그냥'요청'을 사용하면, 그것은 당신에게 많은 불면의 밤을 저장합니다. –

+0

''requests''는 생명을 구하는 사람입니다 !!! 매력처럼 작동합니다. 많은 감사합니다. –

답변

1

게임을 다음 Brainiac의 의견, 나는 대신에 Python Requests을 단순히 사용했다. 다음 requests 코드는 상자 밖으로 작동합니다 단순히 Session 개체에 대해 수행 할 수있는 동일한 사용자 이름/암호

import requests 
session = requests.Session() 
response = session.get('https://domain.com/auth?name=USERNAME&pw=PASSWORD') 

또한 요청 :

... 
next_response = session.get('https://domain.com/someOtherPage')