Python:机械化没有找到任何形式
Python: mechanize don't find any form
我正在尝试使用 mechanize 登录网站。该网站没有表格。有人可以帮我吗?问题是什么?
谢谢
Python 代码:
import mechanize
browser = mechanize.Browser()
browser.open("http://website.com/login.php")
print "forms-start"
for form in browser.forms():
print form
print "forms-end"
输出:
forms-start
forms-end
网站:
<body>
<div align="center">
<div class="msg"></div><br/>
<form method="POST" action="" autocomplete="off">
<p><span><b>Username*:</b></span> <input type="text" name="username" placeholder="your account name" value="" style="width:18em" /></p>
<p><span><b>Password*:</b></span> <input type="password" name="password" placeholder="your account password" value="" style="width:18.0em" /></p>
<p><span><b>Remember*:</b></span> <input type="checkbox" name="remember" value="1" checked/></p>
<input type="hidden" name="login" value="1" />
<input type="submit" class="frmbtn" value="Login" />
</form>
</div>
</body>
根据 FAQ Mechanize 无法处理无效 HTML
赞:“br/”
你的 website
上有这样的代码
您可以使用 BeautifullSoup 解析器
import mechanize
browser = mechanize.Browser(factory=mechanize.RobustFactory())
browser.open("http://example.com/")
print browser.forms
或者,您可以任意处理 HTML(和 headers):
browser = mechanize.Browser()
browser.open("http://example.com/")
html = browser.response().get_data().replace("<br/>", "<br />")
response = mechanize.make_response(
html, [("Content-Type", "text/html")],
"http://example.com/", 200, "OK")
browser.set_response(response)
来自常见问题解答
我正在尝试使用 mechanize 登录网站。该网站没有表格。有人可以帮我吗?问题是什么? 谢谢
Python 代码:
import mechanize
browser = mechanize.Browser()
browser.open("http://website.com/login.php")
print "forms-start"
for form in browser.forms():
print form
print "forms-end"
输出:
forms-start
forms-end
网站:
<body>
<div align="center">
<div class="msg"></div><br/>
<form method="POST" action="" autocomplete="off">
<p><span><b>Username*:</b></span> <input type="text" name="username" placeholder="your account name" value="" style="width:18em" /></p>
<p><span><b>Password*:</b></span> <input type="password" name="password" placeholder="your account password" value="" style="width:18.0em" /></p>
<p><span><b>Remember*:</b></span> <input type="checkbox" name="remember" value="1" checked/></p>
<input type="hidden" name="login" value="1" />
<input type="submit" class="frmbtn" value="Login" />
</form>
</div>
</body>
根据 FAQ Mechanize 无法处理无效 HTML
赞:“br/” 你的 website
上有这样的代码您可以使用 BeautifullSoup 解析器
import mechanize
browser = mechanize.Browser(factory=mechanize.RobustFactory())
browser.open("http://example.com/")
print browser.forms
或者,您可以任意处理 HTML(和 headers):
browser = mechanize.Browser()
browser.open("http://example.com/")
html = browser.response().get_data().replace("<br/>", "<br />")
response = mechanize.make_response(
html, [("Content-Type", "text/html")],
"http://example.com/", 200, "OK")
browser.set_response(response)
来自常见问题解答