【发布时间】:2017-12-01 00:44:40
【问题描述】:
我正在使用 robobrowser 登录网站。
我遇到的问题是登录页面有 2 个表单,它们都具有相同的操作,但名称不同。
<form action="/login" name="changedomain">
...
</form>
第二种形式是:
<form action="/login" name="signin">
...
</form>
我的python代码如下:
import re
from robobrowser import RoboBrowser
browser = RoboBrowser(history=True, parser="lxml")
browser.open("http://example.com")
form = browser.get_form()
问题是如果我使用:
form = browser.get_form()[1]
我收到一个 BadRequestKeyError,但我找不到任何有关如何按名称查找表单的文档。唯一的文档说要使用该操作,但表单具有相同的操作属性。 欢迎提出任何建议。
【问题讨论】:
-
尚未对此进行测试,但
get_form接受标准 BeautifulSoup 参数,因此可能会这样:browser.get_form({'name':'signin'}) -
browser.get_form({'class':'signin'}) 和 browser.get_form({'class':'.signin'}) 不起作用(对于唯一有意义的标识符是一个类),所以我怀疑名字也不是这样工作的。
标签: python python-2.7 robobrowser