【问题标题】:python mechanize FormNotFoundErrorpython mechanize FormNotFoundError
【发布时间】:2012-05-03 06:38:53
【问题描述】:

我正在研究机械化以获取表单元素

import mechanize
br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://www.bnm.gov.my/index.php?ch=12&pg=622")
br.select_form(name="Rates")

但这是抛出错误:

FormNotFoundError: no form matching name 'Rates'

虽然有

<form onsubmit="return validate();" method="get" action="index.php" name="Rates">

有人可以帮忙吗

提前致谢

【问题讨论】:

  • 页面上似乎有几个元素的名称和/或 ID 为“rates”。这可能是个问题。
  • 机械化似乎看不到任何形式。 [ i.name for i in br.forms() ] 返回一个空列表。
  • question 中有一条评论可能解释了这种行为。使用wget 检索页面也不会生成该表单。

标签: python forms mechanize


【解决方案1】:

尝试使用 nr 参数选择表单:

select_form(self, name=None, predicate=None, nr=None)

我猜那个页面只有 1 个表单,所以试试 nr=0。

如果页面中没有表单,则可能意味着它是使用 Javascript 添加的。而且,在这种情况下,机械化是不够的。您必须使用 Selenium 或 Spynner。

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多