Python 机械化:提交表单但不加载新页面以查看结果

Python 机械化:提交表单但不加载新页面以查看结果,python,screen-scraping,mechanize,mechanize-python,Python,Screen Scraping,Mechanize,Mechanize Python,好吧,我开始有点沮丧了。我花了一天的大部分时间试图弄清楚为什么我的脚本在github和here上都不起作用。它应该相当简单。机械化加载页面、填写表单、提交表单、打开包含公司信息的新页面并发布内容。它只是不起作用。当我检查代码时,我可以看到填写了正确的表单,但在mechanize提交表单后,它不会进入新页面,而是停留在填写表单的页面上。代码如下: from mechanize import Browser br = Browser() url = "http://cvr.dk/Site/For

好吧,我开始有点沮丧了。我花了一天的大部分时间试图弄清楚为什么我的脚本在github和here上都不起作用。它应该相当简单。机械化加载页面、填写表单、提交表单、打开包含公司信息的新页面并发布内容。它只是不起作用。当我检查代码时,我可以看到填写了正确的表单,但在mechanize提交表单后,它不会进入新页面,而是停留在填写表单的页面上。代码如下:

from mechanize import Browser

br = Browser()

url = "http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=0"

cvr = br.open(url).read()

#I select the form
br.select_form(name="aspnetForm")

#I fill in 19997049 as a company number
br.form['ctl00$QuickSearch1$CvrTextBox'] = "19997049"

response = br.submit()

content = response.read()

print content
我觉得这非常简单,但我在提交表单时缺少了应该发生的重定向

编辑:网站上似乎有很多Java脚本。这可能是原因吗?什么时候有选择

EDIT2:好吧,看来我可以简单地在url中添加公司编号,然后通过这种方式获得我想要的页面,但我仍然不明白为什么这个脚本不起作用


非常感谢您的反馈

您需要告诉它使用哪个按钮:

response = br.submit(name='ctl00$QuickSearch1$CvrSearchButton')

这是一个很好的方法,但会给robots.txt带来一个问题,一个道德困境。

我认为表单实际上加载了另一个页面,没有做一些AJAX wizadry??好吧,当我填写表单并通过Chrome提交时,会加载另一个页面,但使用mechanize我没有走那么远。不要认为这是AJAX wizadry,可能是javascript的问题。不知何故,我没有得到重定向后提交。非常感谢。工作起来很有魅力。