我需要以自动方式提取本网站中的所有文件: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/