使用Mechanize/Python的Hotmail网站登录表单
我正在学习Mechanize/BeautifulSoup,学习方法如下: 我不想为Gmail写登录和检查邮件,我想对hotmail做同样的事情。但是,我无法使用Mechanize找到登录表单。当我尝试执行以下操作时,结果为空:使用Mechanize/Python的Hotmail网站登录表单,python,forms,urllib2,mechanize,www-mechanize,Python,Forms,Urllib2,Mechanize,Www Mechanize,我正在学习Mechanize/BeautifulSoup,学习方法如下: 我不想为Gmail写登录和检查邮件,我想对hotmail做同样的事情。但是,我无法使用Mechanize找到登录表单。当我尝试执行以下操作时,结果为空: for f in self.br.forms(): print 'form:', f 那些代码什么也打印不出来。通过查看hotmail网站(login.live.com),我可以看到表单名是“F1”,两个字段是“username”和“passwd”,但Mechani
for f in self.br.forms():
print 'form:', f
那些代码什么也打印不出来。通过查看hotmail网站(login.live.com),我可以看到表单名是“F1”,两个字段是“username”和“passwd”,但Mechanize无法捕获这些字段
以下是完整的代码:
import os
import mechanize
import cookielib
from bs4 import BeautifulSoup
import html2text
import agent
class Hotmail:
def __init__(self):
self.br = mechanize.Browser()
cj = cookielib.LWPCookieJar() # Cookie Jar
self.br.set_cookiejar(cj)
# Browser options
self.br.set_handle_equiv(True)
#self.br.set_handle_gzip(True)
self.br.set_handle_redirect(True)
self.br.set_handle_referer(True)
self.br.set_handle_robots(False)
self.br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) # Follows refresh 0 but not hangs on refresh > 0
self.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')] # User-Agent
def login(self, user, pswd):
self.br.open('http://login.live.com')
for f in self.br.forms():
print 'form:', f
if __name__ == '__main__':
test = Hotmail()
test.login('asd','asd')
我还尝试手动将表单“F1”设置为br.form并为其填写值,但它不起作用
你知道为什么Mechanize无法识别Hotmail上的任何表单,或者如何获取这些表单吗
非常感谢你 我认为返回的HTML中不存在该表单。它是用JavaScript构建的。有没有可能触发JavaScript并让表单填充?