我正在尝试编写一个代码,该代码将从服务器下载所有数据,该服务器保存.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)
选项,但不起作用。
你使用的是错误的工具。 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参数 - 您不必担心自己转义请求。