Python Mechanize 向没有 ID 或名称的表单输入添加值

标签 python mechanize

以前用过 Mechanize 。尝试填写输入没有名称或 ID 的表单。他们只有一个类(class)。有没有办法像选择表格时那样通过数字来做到这一点?

<form class="go-action-form">

    <div class="go-action-form-no-auth">
        <input class="firstname" type="text" placeholder="First Name" data-required />
        <input class="lastname"  type="text" placeholder="Last Name"  data-required />
        <input class="email"     type="text" placeholder="Email"      data-required data-validation="email" />
        <input type="submit" class="submit-petition" id="submit-petition-embed-ub39aca073fec49a690c5f3acb4152aae" value="Submit My Name" />
    </div>
</form>

这就是我所拥有的。
br = mechanize.Browser()


br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)


br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)


url = "https://generationopportunity.org/petitions/free-the-food-trucks-in-raleigh/?utm_content=bufferfa496&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer"
br.open(url)

br.select_form(nr = 1)

br.form.set_value(firstname, nr=0)
br.form.set_value(lastname, nr=1)
br.form.set_value(email, nr=2)
br.form.set_value(zip, nr=3)


print br.form.controls[0]
print br.form.controls[1]
print br.form.controls[2]
print br.form.controls[3]

br.submit()

编辑

我想出了如何在我上面的内容中添加值。现在我只是不知道如何提交它。我试了一下,它说 br.submit() -- AttributeError: 'NoneType' object has no attribute 'click'

谢谢

最佳答案

br.open(url)

# forms = [f for f in br.forms()]
# print forms[1]
# print forms[1].controls[0]

br.select_form(nr = 1)



br.form.set_all_readonly(False)


br.form.set_value(firstname, nr=0)
br.form.set_value(lastname, nr=1)
br.form.set_value(email, nr=2)
br.form.set_value(zip, nr=3)


br.submit()

关于Python Mechanize 向没有 ID 或名称的表单输入添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054420/

相关文章:

python - 我可以使用 python 切片来访问嵌套元组的一个 "column"吗?

python - 如何在二维列表的项目中追加内容?

python - 在 Python 中以制表符分隔列的形式写入文本文件

ruby - 为什么 Mechanize HTML 内容打印 &lt;!-- Session expired -->?

Python mechanize 不点击按钮

python - 使用python登录instagram时出错

python - 如何使用 Mechanize 抓取 HP 打印机状态页?

python - Django 教程重新加载模块

python - Pandas 分析不显示输出

ruby - 使用 ruby​​ mechanize gem 时出现 SSL Reuse 错误