Python webbrowser无法与GIS服务器一起运行

问题描述 投票:0回答:1

我正在尝试编写一个代码,该代码将从服务器下载所有数据,该服务器保存.rar文件,用于学生项目的虚拟干部粒子。我现在得到的是服务器的查询,只需要输入特定数量的粒子并将其作为url访问以下载.rar文件。

url = 'http://www.pg.geof.unizg.hr/geoserver/wfs?request=getfeature&version=1.0.0&service=wfs&&propertyname=broj,naziv_ko,kc_geom&outputformat=SHAPE-ZIP&typename=gf:katastarska_cestica&filter=<Filter+xmlns="http://www.opengis.net/ogc"><And><PropertyIsEqualTo><PropertyName>broj</PropertyName><Literal>1900/1</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>naziv_ko</PropertyName><Literal>Suma Striborova Stara (9997)</Literal></PropertyIsEqualTo></And></Filter>'

这是我想用网页浏览器模块打开粒子“1900/1”的“网址”,但这样我收到错误:

此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。

当我手动输入此URL时,它会毫无问题地下载文件。我可以使这个python Web应用程序工作的方式是什么?我使用了webbrowser.open_new(url)选项,但不起作用。

python xml server gis python-webbrowser
1个回答
0
投票

你使用的是错误的工具。 webbrowser用于控制本机Web浏览器。如果您只想下载文件,请使用requests模块(如果无法安装请求,请使用urllib.request)。

import requests

r = requests.get('http://www.pg.geof.unizg.hr/geoserver/wfs', params={
    'request': 'getfeature',
    ...
    'filter': '<Filter xmlns=...>'
})
print(r.content) # or write it to a file, or whatever

注意requests将为您处理编码GET参数 - 您不必担心自己转义请求。

© www.soinside.com 2019 - 2024. All rights reserved.