2011-12-09 6 views
0

http에서 https로 데이터를 게시하려고하면 urllib2가 웹 사이트에서 쿠키를 사용하도록 요청하는 대신 원하는 https 웹 페이지를 반환하지 않습니다. python urllib2가 https 페이지를 반환하지 않음

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() 

내가 성공 상태 200 페이지를 반환 urllib2가 두 번째 HTTPS 페이지에 페이지 및 사후 데이터 이상에서 데이터를 추출

가 쿠키를 사용하도록 요청 :

먼저 HTTP 페이지를 얻으려면.

게시물 데이터를 확인했습니다. 나는 웹 사이트에서 쿠키를 얻고 있지만 다음 요청으로 보내지는지 여부를 모르겠다. 파이썬 문서에서 urllib2가 쿠키를 자동으로 처리한다는 것을 읽었을 때. 나는 또한 유래에 비슷한 문제에 대한 응답에서 읽을 곳이에 프록시 처리기를 설정하기 위해 시도했지만 같은 결과를 얻었다

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

:

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

[요청] (http://pypi.python.org/pypi/requests) (좋음) 또는 [httplib2] (http : // 코드)와 같이 더 멋진 라이브러리 대신 urllib2를 사용해야하는 타당한 이유가 있습니까? .google.com/p/httplib2 /) (Python 3 지원)? – ephemient

+0

해결책을 찾는 동안 요청 라이브러리를 발견했지만 파이썬에 처음 왔기 때문에 먼저 파이썬의 설치된 라이브러리에 시도해 보도록 권했습니다. – Coder

답변

1

urllib2

두 번째 HTTPS 페이지를 얻으려면 응답에서 쿠키를 "처리"하지만 쿠키를 자동으로 저장하지 않고 이후 요청으로 다시 보내지는 않습니다. 이를 위해서는 the cooklib module을 사용해야합니다.

There are some examples in the documentationurllib2과 어떻게 작동하는지 보여줍니다.

관련 문제