Cryptocurrency Calendar 스크래핑 1

Cryptocurrency Calendar 라는 가상 통화 정보 사이트를 스크래핑합니다.

소스 코드


import requests
import lxml.html

r = requests.get("https://coinmarketcal.com/")
html = r.text
root = lxml.html.fromstring(html)

time_of_event = root.xpath(
    "/html/body/main/div[3]/section[1]/div[2]/div[3]/article[1]/div/h5[1]/strong")
print(time_of_event[0].text.strip())
#strip()で出力結果の前後の空白を抜け出す
title_of_event = root.xpath(
    "/html/body/main/div[3]/section[1]/div[2]/div[3]/article[1]/div/h5[2]/strong")
print(title_of_event[0].text.strip())
sort_of_event = root.xpath(
    "/html/body/main/div[3]/section[1]/div[2]/div[3]/article[1]/div/h5[3]")
print(sort_of_event[0].text.strip())
content_of_event = root.xpath(
    "/html/body/main/div[3]/section[1]/div[2]/div[3]/article[1]/div/div[1]/p[2]")
print(content_of_event[0].text.strip())

실행 결과



15 March 2018
Burst (BURST)
Hard Fork
Dynamic block size and transaction fees, PoC2 protocol, partial Dymaxion code... The fork is planned to happen around block 470 000.

해설



XPath에서 HTML에서 요소를 추출했습니다. Google 크롬에서 지정된 XPath를 추출할 수 있습니다.

XPath를 사용하는 것에 유의하는 것은 배열의 첨자가 0부터 시작하는 것이 아니라 1부터 시작한다는 것입니다. XPath는 Google 크롬을 사용하여 추출할 수 있지만 완전한 XPath가 아니라 그대로 사용할 수는 없습니다. 그래서 스스로 보충해야합니다.
사이트에는 수십 개의 에벤트가 있습니다만, 이 소스 코드에서는 1개의 에벤트밖에 빼낼 수 밖에 없습니다. 다음 번에는 XPath 지정을 고안하여 한 페이지에서 모든 이벤트를 꺼내 보겠습니다.

참고로 한 책



Python에 의한 크롤러 & 스크래핑 입문 설계·개발부터 수집 데이터의 해석·운용까지

좋은 웹페이지 즐겨찾기