문제

Python 2.6의 Hulu 용 간단한 HTML 스크레이퍼를 작업하고 있으며 내 계정에 로그인하는 데 문제가 있습니다. 지금까지 내 코드는 다음과 같습니다.

import urllib
import urllib2
from cookielib import CookieJar
#make a cookie and redirect handlers
cookies = CookieJar() 
cookie_handler= urllib2.HTTPCookieProcessor(cookies)
redirect_handler= urllib2.HTTPRedirectHandler()

opener = urllib2.build_opener(redirect_handler,cookie_handler)#make opener w/ handlers

#build the url
login_info = {'username':USER,'password':PASS}#USER and PASS are defined
data = urllib.urlencode(login_info)

req = urllib2.Request("http://www.hulu.com/account/authenticate",data)#make the request
test = opener.open(req) #open the page
print test.read() #print html results

코드는 컴파일 및 실행되지만 모든 인쇄물은 다음과 같습니다.

Login.onError("Please \074a href=\"/support/login_faq#cant_login\"\076enable cookies\074/a\076 and try again.");

쿠키를 처리하는 방법에 약간의 오류가 있다고 생각하지만 쿠키를 발견 할 수없는 것 같습니다. 나는 Mechanize 가이 유형의 프로그램에 매우 유용한 모듈이라고 들었지만, 이것이 유일한 속도 범프가 남은 것처럼 보이기 때문에 내 버그를 찾기를 바랐습니다.

도움이 되었습니까?

해결책

돌아 오는 오류 메시지는 오해의 소지가있을 수 있습니다. 예를 들어 서버가보고있을 수 있습니다 사용자 에이전트 그리고 그것이 지원되는 브라우저 중 하나가 아니라고 말하거나 http_referer Hulu 도메인에서 나올 것으로 기대합니다. 내 요점은 요청에 하나씩 추측을 요청하는 두 가지 변수가 있다는 것입니다.

HTTP 분석기 도구를 사용하는 것이 좋습니다 찰스 또는 하나 개똥 벌레 브라우저를 통해 Hulu 로그인을 수행 할 때 클라이언트가 서버로 보내는 (헤더 필드, 쿠키, 매개 변수)를 파악하려면 이것은 당신에게 줄 것입니다 정확한 파이썬 코드로 구성해야합니다.

다른 팁

당신이보고있는 것은 Ajax 반환입니다. 아마도 JavaScript를 사용하여 쿠키를 설정하고 인증 시도를 망칠 것입니다.

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