2017-12-26 37 views
0

학생 프로젝트를위한 가상의 cadastrial 입자에 관한 .rar 파일을 보유하고있는 서버에서 모든 데이터를 다운로드하는 코드를 작성하려고합니다. 이제는 특정 개수의 입자를 입력하고 .rar 파일을 다운로드하기위한 URL로 액세스해야하는 서버에 대한 쿼리를 얻었습니다.Python webbrowser가 GIS 서버와 작동하지 않습니다.

This XML file does not appear to have any style information associated with it. The document tree is shown below.

I 수동으로 입력이 :

이 나는 ​​입자 "1분의 1,900"하지만이 방법에 대한 웹 브라우저 모듈을 엽니 다 "URL"하고자한다
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>' 

오류가 발생합니다 url 문제없이 파일을 다운로드합니다. 이 파이썬 웹 응용 프로그램을 작동시키는 방법은 무엇입니까? webbrowser.open_new(url) 옵션이 작동하지 않습니다.

+0

Stara와 (9997) 사이에 빈 공간이 있어야합니까? 파일을 삭제할 수 없습니다. –

+0

@AntonvBR no. 그것은 유효한 링크입니다. –

답변

0

잘못된 도구를 사용하고 있습니다. webbrowser은 기본 웹 브라우저를 제어하기위한 것입니다. 파일을 다운로드하려는 경우 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 매개 변수를 인코딩 처리합니다 - 당신은 요청이 자신을 탈출에 대해 걱정할 필요가 없습니다.

+0

감사합니다.이 부분이 작동하지만 어떻게 출력으로 .rar 파일을 얻을 수 있습니까? 이 링크에 도달하면 자동으로 다운로드되므로 웹 브라우저 모듈을 사용해 보았습니다. –