我正在尝试自动化一些我必须在网站上定期做的事情。 首先,我必须登录,我正在尝试使用Mechanize:
from mechanize import Browser
br = Browser()
br.set_handle_robots(False)
br.open("http://leghe.fantagazzetta.com/")
#Seleziona il form di login di nome Form1
formcount=0
for frm in br.forms():
if str(frm.attrs["id"])=="Form1":
break
formcount=formcount+1
br.select_form(nr=formcount)
#imposta username e password
#br['username']='asdasd'
br.set_value('******',id="username")
br.set_value('******',id="password")
#submit
res = br.submit()
print res.read()
我评论了#br['username']='asdasd'
行,因为它引发了ControlNotFoundError
;所以我选择了.set_value
方法(我不确定它是否有效,但它没有引发任何异常)。
问题是在br.submit()
页面保持不变之后。
如何获取更新的页面?
编辑1:
我不知道这是否是我的意图;如果是这样,那么没有任何改变。
import cookielib
import mechanize
br = mechanize.Browser()
#br.set_handle_robots(False)
#br.set_handle_redirect(True)
# Enable cookie support for urllib2
cookiejar = cookielib.LWPCookieJar()
br.set_cookiejar(cookiejar)
# Broser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Set refresh handle
br.set_handle_refresh(mechanize.HTTPRefererProcessor(), max_time=1)
headers = [('User-Agent', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0'),('Connection', 'keep-alive')]
br.open("http://leghe.fantagazzetta.com/")
#Seleziona il form di login di nome Form1
br.select_form(nr=1)
#imposta username e password
br.set_value('****',id="username")
br.set_value('****',id="password")
br.select_form(nr=0)
#submit
res = br.submit()
print res.read()
答案 0 :(得分:1)
Mechanize可以选择在提交表单后重定向页面。 您可以在提交表单之前尝试使用以下代码:
br.set_handle_redirect(True)