Python-将表单中的输入文本机械化

Python-将表单中的输入文本机械化,python,forms,mechanize,Python,Forms,Mechanize,我想在表单的文本字段中输入一些文本。这是我当前的代码。接下来我该怎么办 import re from mechanize import Browser br = Browser() br.open("xyz.com") formcount=0 for frm in br.forms(): if str(frm.attrs["id"])=="xyz": break formcount=formcount+1 br.select_form(nr=formcount) ## What shou

我想在表单的文本字段中输入一些文本。这是我当前的代码。接下来我该怎么办

import re
from mechanize import Browser

br = Browser()
br.open("xyz.com")
formcount=0
for frm in br.forms():  
if str(frm.attrs["id"])=="xyz":
break
formcount=formcount+1
br.select_form(nr=formcount)

## What should I code here to input text into the form?

response = br.submit() 

尝试打印br.response().read()。如果这就是你想要的,你可以用漂亮的汤解析响应
soup=BeautifulSoup(br.response().read())
如果表单未命名,则可以使用:

br.select_form(nr=0)

这将选择第一个表单(“第0个表单”)。

br.form['id']='ss form'不适用于输入。这是我在find_control return self中得到的-File“/usr/lib/python2.7/dist packages/mechanize/_form.py”,第3101行。_find_control(名称、类型、种类、id、标签、谓词、nr)File“/usr/lib/python2.7/dist packages/mechanize/_form.py”,第3185行,在_find_control raise control-control-notfounderror(“无控件匹配”+说明)mechanize.\u form.ControlNotFoundError:没有与名称“ss-form”匹配的控件我正在设法提交一个空表单,但无法提交任何文本。也许现在你知道我想做什么了?这意味着表单没有控制权。您首先必须通过
br选择正确的表单。选择表单(“表单名称”)
。在br.forms()中对表单使用
:打印表单
,以查找所有表单的名称及其包含的内容。然后在使用
br之前选择正确的表单。表单['id']='abc'
表单未命名。这就是我尝试使用id的原因。另外,我认为我选择的表单是正确的,因为它被正确地提交了。
br.select_form(nr=0)