python mechanize - 无法提交登录表单

时间:2017-10-14 15:19:14

标签: python web-scraping mechanize mechanize-python

我正在使用mechanize(http://wwwsearch.sourceforge.net/mechanize/)登录www.coinotron.com,但执行时我的执行挂起br.submit()

import mechanize  
...  
br = mechanize.Browser()
br.open("https://coinotron.com/app?action=logon")
form = br.select_form(nr=0)
br.form["name"] = "myusername"
br.form["password"] = "mypassword"
reponse = br.submit() # HERE THE EXECUTION HANGS!

如果我评论密码行,那么脚本执行正常,但当然它不会登录。

1 个答案:

答案 0 :(得分:0)

找到了解决方法,虽然我不完全理解它的工作原理。但是由于HTTPRefreshProcessor.honor_time = True和HTTPRefreshProcessor.max_time具有较大的值,因此认为br.submit()正在休眠。 所以我在br = mechanize.Browser()之后添加了以下行:

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1, honor_time=True)

以下页面帮助了我,虽然与我的问题没有直接关系: Mechanize in Python - Redirect is not working after submit

http://wwwsearch.sourceforge.net/mechanize/hints.html