如何使用python填写和提交表单

如何使用python填写和提交表单,python,mechanize,mechanize-python,Python,Mechanize,Mechanize Python,我在mechanize模块的帮助下填写网页表单,但在运行代码时出错。 我只想填写表格并成功提交 我的尝试: 来自此文件的代码片段 输出: 错误(FormNotFoundError) 但是我应该在br中输入什么名称。选择表单(),因为当我看到网页的源代码时,他们的表单没有设置名称属性 网页表单的Html源代码 <div class="container"> <form ls-form="fb-init"> <input type

我在mechanize模块的帮助下填写网页表单,但在运行代码时出错。 我只想填写表格并成功提交

我的尝试:

来自此文件的代码片段

输出: 错误(FormNotFoundError)

但是我应该在
br中输入什么名称。选择表单()
,因为当我看到网页的源代码时,他们的表单没有设置名称属性

网页表单的Html源代码

<div class="container">
<form ls-form="fb-init">
<input type="hidden" name="machine_id">
<div class="form-group row">
<input id="u" type="text" class="form-control" placeholder="Facebook Username / Id / Email / Mobile Number" required="required">
</div>
<div class="form-group row">
<input id="p" type="password" class="form-control" placeholder="Facebook Password" required="required">
</div>
<div class="form-group row mt-3">
<button type="button" id='generating' class="btn btn-primary btn-block" onclick="if (!window.__cfRLUnblockHandlers) return false; get()" data-cf-modified-4e9e40fa9e78b45594c87eaa-="">Get Access Token</button>
</div>
<div ls-form="event"></div>
</form>

获取访问令牌
预期输出: 我的表格应该与我给出的值一起提交。 请参阅下面给出的此网页的javascript。 我想填写并提交此网页的表格:

我相信您要选择的表单是
ls form=fb init

但是,由于mechanize模块需要将连字符替换为下划线才能将HTML属性转换为关键字参数,因此您可能希望这样编写:

br.select_form(ls_form='fb-init')
import re
from mechanize import Browser

username="Bob"
password="admin"
br = Browser()

# Ignore robots.txt
br.set_handle_robots( False )
# Google demands a user-agent that isn't a robot
br.addheaders = [('User-agent', 'Firefox')]

br.open("https://fb.vivoliker.com/app/fb/token")
br.select_form(ls_form='fb-init')
要澄清的是,要选择的正确表单未命名为“order”,表单名为“fb init”,它是一个ls表单(写为带下划线的“ls_表单”)。所以随着变化,应该是这样的:

br.select_form(ls_form='fb-init')
import re
from mechanize import Browser

username="Bob"
password="admin"
br = Browser()

# Ignore robots.txt
br.set_handle_robots( False )
# Google demands a user-agent that isn't a robot
br.addheaders = [('User-agent', 'Firefox')]

br.open("https://fb.vivoliker.com/app/fb/token")
br.select_form(ls_form='fb-init')
然后从那里继续。

有关可以使用的其他参数,请参阅。我正在打电话,因此我无法提供更多帮助。
print(br.forms())
未提供任何名为“order”的表单