2016-09-08 10 views
0

xlsx 파일을 다운로드하여 컴퓨터에 저장하는 스크립트를 작성하려고합니다. 이 파일에는 특정 경로가 없으며 GET 양식을 작성한 후에 생성됩니다. 두 개의 제출 버튼이 있습니다.Python - GET 양식을 사용하여 파일을 다운로드하십시오.

첫 번째 것은 결과 목록을 양식으로 작성합니다. 두 번째 파일은 xlsx 파일을 만들고 파일을 저장할 위치를 묻습니다.

<form action="/search" method="get" id="frm-detailedSearchForm"> 

...

<input type="text" name="publication_date[from]" class="date" tabindex="1" id="frm-detailedSearchForm-publication_date-from" data-nette-rules='[{"op":":filled","rules":[{"op":":pattern","msg":"Nevalidní formát data (dd.mm.rrrr)","arg":"\\d{1,2}\\.\\d{1,2}.\\d{4}"}],"control":"publication_date[from]"}]'> 

...

<input type="submit" name="search" class="w-button btn ajax" tabindex="27" value="Search"> 
<input type="submit" name="export" class="w-button btn" tabindex="28" value="Export"> 
<input type="hidden" name="do" value="detailedSearchForm-submit"></form> 

편집 : 솔루션 (LIB를 기계화 사용) 결국 쉬웠다 :

url = url + ?do=detailedSearchForm-submit&export=Export 
browser.retrieve(url, file.xlsx) 

감사합니다.

+1

지금까지 개발 한 파이썬 코드를 항상 보여줘야합니다. 시작하려면 여기를보십시오 http://stackoverflow.com/a/1171409/640916 –

+0

많은 코드 유형을 tryied하므로 어느 것이 시작하기 가장 좋은지 말하기가 어렵습니다. 브라우저 mechanize.Browser = (초기 mechanize.RobustFactory =()) browser.set_handle_robots (거짓) browser.open (URL) browser.select_form (NR = 1) browser.form [ "의 publication_date [발] "] ="01.09.2016 " browser.form ["publication_date [to] "] ="01.09.2016 " browser.submit()을 사용하면이 기능이 작동합니다. browser.submit (nr = 1)을 사용하기 위해 tryied 할 때 아무 일도 일어나지 않습니다. –

답변

0

기존 웹 사이트와 상호 작용하고, 양식을 채우고, 파일을 다운로드하고 저장하는 스크립트를 작성하려고하는 경우에 맞습니까? 당신은 웹 사이트를 쓰는 사람이 아닙니다.

입니다. - 실제 브라우저 상단에 양식을 채우는 작업을 자동화하려면 selenium을 사용하는 것이 좋습니다. 시작하기가 약간 힘들지만 훨씬 더 탄력적입니다.

이론적으로 양식 제출을 위조하는 URL에서 파일을 다운로드하는 스크립트를 작성할 수 있지만이 태도는 종종 문제의 원인이됩니다. 사이트가 어느 수준 이상의 복잡성을 겪고 있다면이 태도가 작동 할 확률은 매우 낮습니다.

+0

정확히, 나는 웹 사이트를 쓰고있는 사람이 아니다. 전날 매일 pubslihed 한 파일을 다운로드하고 (publication_date [from]을 채우고 파일을 내 컴퓨터에 저장하는) 무언가가 필요합니다. –

+0

@ MartinaKarbusická - 내 대답이 유용하다면 언제든지 받아주세요/upvote – akiva

관련 문제