python - Mechanize:提交表单但不加载新页面以查看结果

标签 python screen-scraping mechanize mechanize-python

好吧,我开始有点沮丧了。我花了一天的大部分时间试图找出为什么我的脚本不起作用 - 无论是在 github 上还是在这里。它应该相当简单。 Mechanize 加载页面、填写表单、提交表单、打开包含公司信息的新页面并发布内容。它只是不起作用。当我检查代码时,我可以看到填写了正确的表单,但是在 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

我感觉这非常简单,但是我错过了提交表单时应该发生的重定向的一些内容。

编辑:网站上似乎有很多 JavaScript。可能是这个原因吗?什么时候有什么选项?

EDIT2:好的,看来我可以简单地在网址中添加公司编号并以这种方式获取我想要的页面,但我仍然很困惑为什么这个脚本不起作用。

非常感谢您的反馈

最佳答案

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

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

这可行,但引发了 robots.txt 的问题,这是一个道德困境。

关于python - Mechanize:提交表单但不加载新页面以查看结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070721/

相关文章:

ruby - cURL 有效但 Mechanize 无效

Python Mechanize 带有下拉提交的复选框

java - 哪种语言最容易和最快地处理 XML 内容?

python - 在 Python 中捕获一个窗口

regex - 屏幕抓取: regular expressions or XQuery expressions?

ruby - Mechanize 和 NTLM 身份验证

Python语音识别在按下按钮时listen_in_background?

python - 使用 jupyter Notebook 在 conda 环境中设置 R

ruby - 是否可以使用 Nokogiri 创建 HTML 推送解析器?

java - 如何使用 HTML Parser 获取 HTML 页面中所有标签的完整信息