웹크롤링

1. 웹크롤링과 스크레이핑

ihl 2020. 9. 7. 21:28

0. BeautifulSoup, requests 설치

 

 

1. 실습 1: 내가 만든 html에서 데이터 가져오기

from bs4 import BeautifulSoup

html="""
<html><body>
    <h1>h1태그의 텍스트</h1>
    <p>p1태그의 텍스트1</p>
    <p>p태그의 텍스트2</p>
</body></html
"""

soup = BeautifulSoup(html, 'html.parser')

h1 = soup.html.body.h1
p1 = soup.html.body.p
p2 = p1.next_sibling.next_sibling

print("h1 = " + h1.string)

위 처럼 html에 있는 데이터 들을 soup로 태그에 접근하여 뽑아낼 수 있다.

 

2. 실습2: 외부 페이지에서 데이터 가져오기 - 환율 정보 가져오기

from bs4 import BeautifulSoup
import urllib.request as req

url = "http://finance.naver.com/marketindex/"
res = req.urlopen(url)

soup = BeautifulSoup(res, "html.parser")

price = soup.select_one("div.head_info > span.value").string
print("환율=", price)

브라우저에서 궁금한 요소에 대고 우클릭>검사 로 해당 페이지의 html을 볼 수 있다.

이를 활용하여 soup에 해당 요소의 css 선택자를 넣으면 데이터를 가져올 수 있다.

 

+cron을 명령어로 코드(크롤링+저장)를 주기적으로 수행시켜 데이터를 원하는 기간마다 수집할 수 있다.