【问题标题】:Python: mechanize don't find any formPython:机械化找不到任何形式
【发布时间】:2015-01-09 14:09:52
【问题描述】:

我正在尝试使用 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>&nbsp;<input type="text" name="username" placeholder="your account name" value="" style="width:18em" /></p>
        <p><span><b>Password*:</b></span>&nbsp;<input type="password" name="password" placeholder="your account password" value="" style="width:18.0em" /></p>
                    <p><span><b>Remember*:</b></span>&nbsp;<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>

【问题讨论】:

  • 做什么:从机械化导入浏览器浏览器=浏览器()响应= browser.open(“website.com/login.php")打印响应代码说?
  • 好的,所以网站在那里回答。如果您将 .code 与 .read() 交换,您应该得到 mechanize 看到的输出,您也可以发布这个吗?
  • 好吧,这看起来也不错。但是为什么机械化不识别表格...
  • 这是我的问题:D

标签: python forms mechanize


【解决方案1】:

根据FAQ Mechanize 无法处理无效的 HTML

喜欢:“br/” 你的website上有这样的代码

你可以使用 BeautifullSoup 解析器

import mechanize

browser = mechanize.Browser(factory=mechanize.RobustFactory())
browser.open("http://example.com/")
print browser.forms

或者,您可以任意处理 HTML(和标题):

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)

来自常见问题

【讨论】:

  • 我很高兴能帮上忙
猜你喜欢
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多