0

尝试使用 Python mechanize 登录网页。由于我在查找正确表单时遇到问题,因此我将在此处复制一些代码以供未来用户使用,而不是发布 URL(代码可能会更改)。我读了这个,但似乎没有一个明确的答案。

无论如何,我在本教程中使用 mechanize 完成了所有操作,直到获得表格为止。

当我打电话时:

for form in br.forms():
    print form

我回来了:

POST https://www.myexample.com/x-www-form-urlencoded
HiddenControl(utf8=✓) (readonly)
HiddenControl(authenticity_token=BfqPL1ilOXeg08Or/CEBAiK4duWgncY=      
CheckboxControl(affiliate[remember_me]=[1])

查看我看到的原始 HTML:

<label for="affiliate_email">Email<./label>
<.input autofocus="autofocus" id="affiliate_email" 
    name="affiliate[email]" size="30" type="email" />

但是,当我尝试选择电子邮件字段时,我收到一个未找到表单的错误。

br.select_form(name="affiliate[email]")
# updated to 
br.select_form(nr=0)
# Now what do I do here to enter something into that form?
br.form['someIDhere']='myEmail@example.com'

我也尝试过使用表单 ID 和许多其他可能的表单名称。我不明白为什么用 br.forms() 打印表单会返回那些奇怪的结果,这是否意味着该站点正在使用 javascript 登录表单?

先感谢您!

4

1 回答 1

0

affiliate[email]不是表单的名称,而是表单中输入的名称。尝试使用:

br.select_form(nr=0)

如果表单没有名称并且是页面上的第一个/唯一表单。

于 2013-04-01T07:09:42.713 回答