使用mechanize和python登录雅虎

使用mechanize和python登录雅虎,python,mechanize,Python,Mechanize,我正在尝试登录一个雅虎页面,我觉得下面的设置应该可以工作,它对gmail有效,但不在这里。在提交时,它只会再次调出相同的页面 import mechanize import cookielib br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_equiv(True) br.set_handle_gzip(True) br.set_handle_redirect(

我正在尝试登录一个雅虎页面,我觉得下面的设置应该可以工作,它对gmail有效,但不在这里。在提交时,它只会再次调出相同的页面

import mechanize
import cookielib

br = mechanize.Browser()

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

br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

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

#br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

r = br.open('https://login.yahoo.com/config/login;_ylt=AwrGB7pqzTxUF9oAigC3cJ8u?.src=fantasy&.intl=us&.lang=en-US&.done=http://football.fantasysports.yahoo.com/')

br.select_form(nr=0)

br.form['login'] = 'login'
br.form['passwd'] = 'passwd'

br.submit()

您没有传递实际凭据:

br.form['login'] = 'login'
br.form['passwd'] = 'passwd'
如果已将登录名和密码存储在变量中,则应执行以下操作:

br.form['login'] = login
br.form['passwd'] = passwd

我成功地做到了这一点。Yahoo让您先输入用户名,然后提交以访问密码。

您的代码工作正常,您确定您传递的用户名和密码值正确吗?我没有在此处输入实际凭据,但在我的代码中,我将“login”替换为“mylogin”,将“passwd”替换为“mypasswd”
br.form['username'] = yourusername
response = br.submit()
br.select_form(nr=0)
br.form['passwd'] = yourpassword
response = br.submit()