Python Can';使用br.submit()时,无法使用mechanize获得正确的结果

Python Can';使用br.submit()时,无法使用mechanize获得正确的结果,python,forms,web-scraping,beautifulsoup,mechanize,Python,Forms,Web Scraping,Beautifulsoup,Mechanize,我正在尝试提交一个表单,并在提交表单后获得它指向的页面的结果。我用的是机械化 1) 当我使用代码单击第一个按钮时,它会得到一个响应。但是当我阅读响应时,它显示了同一页面(表单所在的页面)的源代码。不是提交表单后浏览器重定向到的页面的名称 from mechanize import Browser br = Browser() br.open("http://link.net/form_page.php") br.select_form(nr=0) br.f

我正在尝试提交一个表单,并在提交表单后获得它指向的页面的结果。我用的是机械化

1) 当我使用代码单击第一个按钮时,它会得到一个响应。但是当我阅读响应时,它显示了同一页面(表单所在的页面)的源代码。不是提交表单后浏览器重定向到的页面的名称

    from mechanize import Browser
    br = Browser()
    br.open("http://link.net/form_page.php")
    br.select_form(nr=0)
    br.form['number'] = '0123456789'
    response = br.submit(nr=0) 
    print response.read()
现在,当我这样做时,相同页面的源代码(即form_page.php)显示出来。但是,它应该显示“results.php”的源代码(当我手动执行此操作时,浏览器将指向该源代码)

2) 页面中有多个提交按钮。我只点击了第一个。但是当我尝试使用nr=1或nr=2单击其他提交按钮时,它显示了这个错误

    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python2.7/dist-packages/mechanize  /_mechanize.py", line 524, in select_form
    raise FormNotFoundError("no form matching "+description)
    mechanize._mechanize.FormNotFoundError: no form matching nr 1
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/dist-packages/mechanize/\u mechanize.py”,第524行,选择格式
raise FormNotFoundError(“无表单匹配”+说明)
mechanize.\u mechanize.FormNotFoundError:没有与nr 1匹配的表单
你能帮帮我吗

这看起来与问题类似,submit在重定向之前调用了一些Javascript来验证输入。也许值得一看页面的HTML并检查它在提交时的功能

这看起来与问题类似,submit在重定向之前调用了一些Javascript来验证输入。也许值得一看页面的HTML并检查它在提交时的功能

尝试以下操作:

import mechanize
br = mechanize.Browser()
br.open("http://link.net/form_page.php")
br.select_form(nr=0)
br['number'] = '0123456789'             ### try instead of 'br.form[]'
response = br.submit()                  ### no need to specify form again
text = response.read()
请不要忘记“br.设置手柄机器人(错误)”、“br.设置所有对象只读(错误)”等…

尝试以下操作:

import mechanize
br = mechanize.Browser()
br.open("http://link.net/form_page.php")
br.select_form(nr=0)
br['number'] = '0123456789'             ### try instead of 'br.form[]'
response = br.submit()                  ### no need to specify form again
text = response.read()

不要忘记“br.设置句柄(False)”、“br.设置全部只读(False)”等…

确保您选择了正确的表单或确保您在网页上选择了一个表单。您可以通过以下代码进行检查:

for form in br.forms():
    print form

查看返回给您的结果。

确保您选择了正确的表单,或者确保您在网页上选择了一个表单。您可以通过以下代码进行检查:

for form in br.forms():
    print form

然后查看返回给您的结果。

您正在选择nr=0的表单。为什么回溯错误返回nr 1?您用它做了什么?您正在选择nr=0的表单。为什么回溯错误返回nr 1?你用它做了什么?