2014-10-04 9 views
0

내가하고있는 프로젝트의 로그인 보호 페이지에서 html에 액세스하려면 웹 사이트에 로그인해야합니다. 내가 값으로 this person's 대답을 사용하고웹 사이트에 로그인하고 Python으로 HTML을 검색

내가이 필요합니다 내가 생각

sock = urllib.urlopen("https://www.example.com/activities") 
html_source = sock.read() 
sock.close() 
print html_source 

은의 HTML을 인쇄 할 것이다 :

from twill.commands import * 
go('https://example.com/login') 

fv("3", "email", "[email protected]") 
fv("3", "password", "mypassword") 

submit() 

가 Assumedly이 그때 실행 그래서 저를 로그인해야 (지금) 액세스 할 수있는 페이지 대신 로그인 페이지의 html을 제공합니다. 다른 방법 (예 : 기계화)을 시도했지만 동일한 결과가 나타납니다.

무엇이 누락 되었습니까? 일부 사이트에서이 유형의 로그인을 제한합니까, 아니면 https 또는 다른 사이트에서 작동하지 않습니까? (이 사이트는 FitBit이므로 질문에 URL을 사용할 수 없기 때문에)

+0

'twill! = urllib' – falsetru

+0

'urllib'을 사용하여 "https://example.com/activities"("www"없이)로 시도 했습니까? 나는 "www"와 "www"URL이 서로 섞일 때 문제가 발생했습니다 ... –

답변

1

하나의 라이브러리를 사용하여 로그인하고 다음 페이지를 검색하는 중 하나의 라이브러리를 사용하고 있습니다. twillurllib은 세션에 대한 데이터를 공유하지 않습니다. (Similar issue to this one.) 그렇게하면 세션 쿠키/인증을 직접 관리해야합니다. 특히 쿠키 + 데이터를 복사하여 다른 라이브러리의 로그인 후 요청에 추가해야합니다.

그렇지 않으면 더 논리적으로 로그인 및 로그인 요청에 대해 동일한 것을 사용하십시오.

+0

훌륭합니다, 고마워요. 방금'go ('https://example.com/activities')'와'save_html ('textfile.txt')를 추가하면 매력이 있습니다. – doxyl