2012-10-10 3 views
0

가능한 중복 :
How to download a text file or some objects from webpage using Python?Python으로 ASP 웹 사이트에서 파일을 다운로드하는 방법은 무엇입니까?

나는이 웹 사이트에서 "사전 릴리스 도메인"아래 파일을 다운로드하려고 : 오늘 10 월 10 일이기 때문에 http://www.namejet.com/pages/downloads.aspx 그래서 당신이 원하는 "2012 년 10 월 10 일 수요일"파일을 받으십시오. 파일을 클릭하면 링크가 변경되지 않으므로 특정 파일의 특정 URL이 없으므로 특정 파일을 다운로드하는 데 파이썬 코드를 작성하는 데 어려움이 있습니다. 스크립트를 작성하려면 어떻게해야합니까? 브라우저를 실제로 열지 않고도 백엔드에서 모든 일이 이루어지기를 바랍니다.

#!/usr/bin/python 

from selenium import webdriver 
from pyvirtualdisplay import Display 
display = Display(visible=0, size=(1024, 768)) 
display.start() 

browser=webdriver.Firefox() # Select browser that you want to automate 
browser.get('http://www.namejet.com/pages/downloads.aspx') 
element=browser.find_element_by_xpath(
      '//a[@id="ctl00_ContentPlaceHolder1_hlPreRelease1"]') 
element.click() 
display.stop() 

이 코드는 오류없이 실행되지만 파일을 다운로드하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

해당 페이지의 앵커는 다운로드 할 URL이 없습니다. 그들은 다른 형식을 제출하고 파일을 다운로드하는 자바 스크립트 함수를 가리 킵니다. 나는 그 함수가 어떻게 작동하는지 알아 낸다. 파이썬에서 그 폼을 제출할 수있다. 그러므로 파일을 다운로드한다. – miki725

+0

'asp'는 그다지 관련이 없으므로 질문을 ref-raze 할 수있다. 질문은 웹 긁기에 관한 것입니다. – miki725

+0

같은 문제에 대한 세 번째 질문이며 해결할 수있는 답변이 두 가지 이상 있습니다. 셀레늄을 사용해 봤니? 파일을 다운로드 할 수 있었고 코드를 게시 했습니까? – root

답변

1
In [1]: from selenium import webdriver 
In [2]: browser=webdriver.Chrome() # Select browser that you want to automate 
In [3]: browser.get('http://www.namejet.com/pages/downloads.aspx') 
In [4]: element=browser.find_element_by_xpath(
      '//a[@id="ctl00_ContentPlaceHolder1_hlPreRelease1"]') 

In [5]: element.click() 

다운로드 폴더에서 prerelease_10-08-2012.txt를 찾을 수 있으며 일반적인 방법으로 열 수 있습니다.

EDIT : 코드가 최신 파일 (예 : prerelease_10-10-2012.txt)을 다운로드합니다. 그냥 시도하고 잘 작동합니다.

+0

그게 내가 원하는거야. 고마워요 루트! –

+0

감사합니다.이 스크립트는 여전히 실제로 Firefox에서 수동으로 다운로드를 승인하도록 요구합니다. 자동으로 필요하지는 않은 채로이를 수행하지 않습니다. 어떻게해야합니까? 감사합니다 –

+0

simpelest : 크롬을 사용하지만 파이어 폭스 설정을 변경할 수도 있습니다. – root

관련 문제