python - 编译网页表单并使用 Mechanize 检索文件

标签 python html forms mechanize

我需要以自动方式提取本网站中的所有文件:http://www.coeweb.istat.it/predefinite/tutto_paese_merce.asp?livello=ATE07_AT2&riga=MERCE&territorio=S&AG=S

在这个网站上有一个带有组合框和复选框的 web 表单,用于设置和一个按钮来执行下载 xls 文件。

我发现 mechanize 是一个很好的 Python 库,可以帮助我自动执行此任务。
我可以配置组合框以在 html 中打开结果页面,但我不明白如何下载 xls 文件。有什么建议吗?

多谢!

#my code
from mechanize import Browser

br = Browser()
page = br.open("http://www.coeweb.istat.it/predefinite/tutto_paese_merce.asp?livello=ATE07_AT2&riga=MERCE&territorio=S&AG=S")

br.select_form(nr=0)
control_xls = br.form.find_control("XLS")
br.find_control("XLS").items[0].selected=True
control = br.form.find_control("CODTERRITORIO")    
control.items[0]
print control.value
print control
#select Florence
control.value = ["309048"]
print control
br[control.name] = ["309048"]
response = br.submit()

out_file = open("dataset.html", "w")
out_file.write(response.read())
out_file.close()

最佳答案

将您正在写入的文件的扩展名从 .html 更改为 .xls。

from mechanize import Browser

br = Browser()
br.open("http://www.coeweb.istat.it/predefinite/tutto_paese_merce.asp?livello=ATE07_AT2&riga=MERCE&territorio=S&AG=S")

br.select_form(nr=0)
br.find_control("XLS").items[0].selected = True
br.find_control("CODTERRITORIO").value = ["309048"]
response = br.submit()

with open("dataset.xls", "w") as xls_file:
    xls_file.write(response.read())

关于python - 编译网页表单并使用 Mechanize 检索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379938/

相关文章:

html - web-app 上下文和 FORM ACTION 属性?

python - 正则表达式中的 `\A` 与 `^`(插入符号)之间是否存在差异?

javascript - 我如何阻止非特权用户的部分内容

javascript - 当我点击联系表单的发送按钮时,博客上没有任何反应

javascript - 来自 JS 的 Css 定位

jquery - 插入一个类到一个div和一行html

javascript - 当我在 Polymer 2 中输入电子邮件时,我的登录密码不会自动完成

python - 按值将列表传递给函数

python - 根据查找更改 pandas 中的行值

python - Steam API 获取价格列表