내가 http://www.eirgridgroup.com/customer-and-industry/general-customer-information/outage-information/문제 - 긁어
그것은 XLSX - 파일, 내가 갈거야 년대의 하단에있는 정전 주의이 최신 출판물을 다운로드 코드를 작성하려고 해요 나중에 Excel로로드하십시오. 이 코드를 작성하는 프로그래밍 언어는 중요하지 않습니다.
내 첫번째 생각은 직접 URL의, http://www.eirgridgroup.com/site-files/library/EirGrid/Outage-Weeks_36(2016)-51(2016)_31%20August.xlsx 처럼 사용하고이 최신 출판물의 URL을 추측 몇 가지 코드를 만드는 것이 었습니다. 그러나 URL 이름에 불일치가 있음을 발견 했으므로 해결책이 작동하지 않습니다.
대신 웹 사이트를 긁어내어 XPath를 사용하여 파일을 다운로드하는 방법이 있습니다. 두 개의 최신 간행물에는 항상 다음 XPath가 있음을 알게되었습니다.
/html/body/div[3]/div[3]/div/div/p[5]/a
/html/body/div[3]/div[3]/div/div/p[6]/a
여기가 도움이 필요한 곳입니다. 나는 XPath와 Web Scraping을 처음 사용한다. 나는 파이썬에서 이와 같은 것을 시도했다.
from lxml import html
import requests
page = requests.get('http://www.eirgridgroup.com/customer-and-industry/general-customer-information/outage-information/')
tree = html.fromstring(page.content)
v = tree.xpath('/html/body/div[3]/div[3]/div/div/p[5]/a')
그러나 v는 비어있는 것처럼 보인다.
모든 아이디어를 높이 평가하겠습니다!
tree.xpath('//p/a[contains(@href, "/site-files/library/EirGrid/Outage-Weeks")]/@href')[:2]
또는 [position() < 3]
사용하여 XPath는 그것을 모든 일을 :
tree.xpath'(//p/a[contains(@href, "site-files/library/EirGrid/Outage-Weeks")])[position() < 3]/@href')
파일이에서 주문하는
우수함 : 당신은 그냥 기본 URL에 각 HREF에 가입하고 파일에 내용을 작성하는 데 필요한 파일을 다운로드하는
! 너무나 감사합니다. @PadraicCunningham! 나는 정말로 단서가 없었다. :) 이제 마지막 질문 하나만 남았습니다. 현재 v에 저장되어있는 두 xlsx 파일을 어떻게 저장합니까? – KarlJensen
@JSkjold, 다운로드 하시겠습니까? –
예, @PadraicCunningham. 그러나 결코 꺼리지 않고, 나는 그것을 이해했다. 하지만 다시 한 번 감사드립니다! 환호 – KarlJensen