웹 사이트를 인증 한 다음 해당 사이트의 일부 비공개 페이지에 액세스 할 수 있기를 원합니다. 몇 가지 예제와 튜토리얼을 살펴 보았지만 제대로 작동하지는 않습니다.Python 인증
예를 들어 인증 후 사용 가능한 https://www.billmonk.com/home에 액세스하고 싶습니다. 사용중인 코드는 다음과 같습니다.
url = 'https://www.billmonk.com/home'
values = {'usercontact' : '[email protected]',
'password' : 'somepass'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
response = opener.open(req)
the_page = response.read()
이 코드는 작동하지 않는 것 같습니다. 나는 항상 "이 페이지에 액세스하려면 로그인해야합니다"페이지가 표시됩니다.
나는 분명한 뭔가를 놓치고 있습니까?
감사합니다.
쿠키는 제외하고 (파이썬에서 혼란스럽지는 않습니다), 일부 사이트는'User-agent' 필드가 마음에 들지 않아서 Python HTTP 요청을 거부하는 것으로 알려져 있습니다. – msw
@msw : Python 문서에서 "일부 HTTP 서버는 일반 브라우저에서 오는 요청 만 스크립트와 대조적으로 허용합니다". 흥미 롭 군. 그래도 해결 방법이있는 것처럼 보입니다. "헤더는 사전이어야하며 각 키와 값을 인수로 사용하여 add_header()가 호출 된 것처럼 처리됩니다. 이는 브라우저에서 자체를 식별하기 위해 사용하는 User-Agent 헤더를"스푸핑 (spoof) . http://docs.python.org/library/urllib2.html#urllib2.Request 또는 http://docs.python.org/py3k/library/urllib.request.html#urllib.request.Request – JAB