2013-07-04 4 views
1

mechanize 모듈을 사용하여 quora.com에 로그인하려고합니다. 나는이 오류 얻을기계를 사용하여 quora에 로그인하려고 시도했습니다

#!/usr/bin/env python 

import mechanize 
import cookielib 

br = mechanize.Browser() # create a browser object 
br.set_handle_equiv(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 
br.set_headers = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)')] 

cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

res = br.open('http://www.quora.com') 
br.select_form(nr = 0) 

br.form['email'] = 'uuuu' 
br.form['password'] = 'pppp' 

res = br.submit() 
print res.read() 

:

내 코드 즉 HTTP 500 뭔가 잘못 서버 측이 의미 내가 아는

Traceback (most recent call last): 
    File "mech.py", line 29, in <module> 
    res = br.submit() 
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 541, in submit 
    return self.open(self.click(*args, **kwds)) 
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open 
    return self._mech_open(url, data, timeout=timeout) 
    File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open 
    raise response 
mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error 

,하지만 나는 그것이 무엇인지 전혀 모른다 , 그리고 어떻게 문제를 디버깅 할 수 있습니다.

답변

5

mechanize은이 특정 양식을 제출할 수 없습니다. 브라우저 개발자 도구를 사용하여이 양식은 요청 매개 변수의 모습을 https://www.quora.com/webnode2/server_call_POST?__instart__에 자바 스크립트 XHR POST 요청을 통해 제출되는 것을 볼 수 있습니다 당신은 br.set_debug_http(True)를 통해 디버깅을 경우 볼,

json:{"args":[],"kwargs":{"email":"<email>","password":"<password>","passwordless":1}} 
formkey:62c4f0d88246bfd81b27cf0dca410d75 
window_id:dep4-4597603286175583039 
_lm_transaction_id:0.4317954108119011 
_lm_window_id:dep4-4597603286175583039 
__vcon_json:["hmac","t1cKg1QhQsYPCA"] 
__vcon_method:do_login 
js_init:{} 

참고로 그 뒤에 스크립트 장면은 다음과 같은 매개 변수를 사용하여 메인 페이지 http://www.quora.com에 POST 요청을한다 :

email=<email> 
allow_passwordless=allow_passwordless 
password=<password> 

당신이 볼 수 있듯이 : 잘못된 URL 및 다른 매개 변수.

이 특별한 경우에는 selenium을 사용하고 싶습니다.

희망이 있습니다.

+0

어떻게이 모든 것을 찾았습니까? –

+0

그리고 셀렌 문제 : http://stackoverflow.com/questions/17462884/is-selenium-slow-or-is-my-code-wrong –

+1

브라우저 개발자 도구를 말하고 디버그 모드를 기계화했습니다. 나는이 질문에 대해 더 대답 할 것이 없다고 생각한다. 어쨌든 셀레늄 질문을 살펴 보겠습니다. – alecxe