2011-07-27 4 views
0

웹 사이트에서 프로그래밍 방식으로 데이터를 수집하는 데 시간이 있습니다. this example을 서버에 로그인하려고 시도하고 있지만 로그인 유형이 잘못 생각하기 때문에 작동하지 않습니다.파이썬 내 로그인 페이지로 리디렉션되는 페이지 검색

html을 구문 분석하기 위해 데이터를 다운로드하려고 할 때 액세스하려는 사이트가 로그인 페이지로 리디렉션됩니다. 를 heres 코드

https://mtred.com/rewards.html

과 : 내가 보상을 열려고 할 때

# build opener with HTTPCookieProcessor 
o = urllib2.build_opener(urllib2.HTTPCookieProcessor()) 
urllib2.install_opener(o) 
# assuming the site expects 'user' and 'pass' as query params 
p = urllib.urlencode({ 'UserLogin_username': 'mylogin', 'UserLogin_password': 'mypass' }) 
# perform login with params 
f = o.open('http://www.mtred.com/user/login.html', p) 
data = f.read() 
f.close() 
# second request should automatically pass back any 
# cookies received during login... thanks to the HTTPCookieProcessor 
f = o.open('https://www.mtred.com/rewards.html',p) 
data = f.read() 
print data 

그것은 나를 다시 로그인 페이지로 맞이할

는 URL입니다. 이 정보는 공개 API를 통해 사용할 수 없으므로 일부 통계를 자동으로 전달하려고합니다.

답변

1

팝업되는 한 가지 문제는 id 로그인에 대한 양식 매개 변수의 값을 전달하는 것입니다. name 매개 변수 , 동작을 예를 들면, 사용자 이름 양식 필드에, 당신은 UserLogin_username를 지정하고 있지만 서버가가 알고있는 매개 변수를 다시 받고 있지 않기 때문에 서버에서 예상대로 해당 필드의 이름은 "UserLogin[username]"

<label for="UserLogin_username" class="required"> 
username or email <span class="required">*</span></label>  
<input name="UserLogin[username]" id="UserLogin_username" type="text" /> </div> 

<div class="row"> 
<label for="UserLogin_password" class="required">password <span class="required">*</span></label> 
<input name="UserLogin[password]" id="UserLogin_password" type="password" /> </div> 

입니다 당신은 예기치 않은 것을보고 있습니다. (여기에 다른 여기에 문제가 아니며, 보지 않았다.)

0

당신은 HTML 양식에 포함 된 "YII_CSRF_TOKEN"이라는 이름의 데이터를 게시해야합니다. 또는 "ClientForm"lib

관련 문제