好的,所以我开始有点沮丧了。我花了大半天的时间试图弄清楚为什么我的脚本不起作用 - 无论是在github还是在这里。它应该相当简单。机械化加载页面,填写表单,提交表单,打开包含公司信息的新页面并发布内容。它只是不起作用。当我检查代码时,我可以看到,正确的表单已填写完毕,但在机械化提交表单后,它不会转到新页面,而是保留在表单上,填写表单。代码是这样的:
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
我觉得这很简单,但是当我提交表单时,我遗漏了应该发生的重定向。
编辑:网站上似乎有很多javascripts。可能是这个原因?那什么样的选择呢?EDIT2:好的,似乎我可以简单地在网址中添加公司编号并获取我想要的页面,但我仍然对为什么这个脚本不起作用感到困惑。
非常感谢您的反馈
答案 0 :(得分:3)
您需要告诉它使用哪个按钮:
response = br.submit(name='ctl00$QuickSearch1$CvrSearchButton')
哪个有效,但会引发robots.txt的问题,这是一个道德困境。