크롤링(Crawling)

크롤링이란 웹에서 데이터를 수집하여 원하는 데이터를 추출하는 기술이다.

데이터를 검색, 색인, 가공까지 가능하기에 방대한 자료들을 활용하는 검색엔진 혹은 특정 정보들을 분석해야하는 분야에서 다양하게 사용되고 있다.

 


1. 크롤링 방식

1) 웹 페이지에 데이터 요청

정보를 추출하기 위해 웹에 요청하는 방식은 Get과 Post가 있다.

 

  • Get : URL을 통해 서버에 정보를 전달. URL 특성 상 길이제한이 있어 일반적으로 적은 양의 정보를 전달할 때 사용.
  • Post : 요청과 응답이 웹 페이지의 본문 안에서 일어나 글자 수의 제한이 없음.

이 단계에서 Python은 주로 requests 로 처리한다.

 

import requests

r=requests.get(target_url)

 

target_url 변수에 크롤링 하려는 웹페이지의 URL을 문자열로 저장한 뒤 requests.get()으로 불러온다.

 

 


 

2) 데이터 파싱

데이터를 추출하기 위해서는 가져온 웹 페이지를 파싱하는 단계가 필요하다.

파싱 :  페이지(문서, html 등)에서 원하는 데이터를 특정 패턴이나 순서로 추출하여 정보로 가공하는 것

 

이 단계에서 Python은 Beautiful soup 로 처리한다. (HTML, xml 파싱 라이브러리)

 

from bs4 import BeautifulSoup

#lxml파싱
lxml = BeautifulSoup(r.content, 'lxml')  #r=requests.get(target_url)

#HTML파싱
html = get_html(target_url)
soup = BeautifulSoup(html, 'html.parser')

 

1)에서 가져온 데이터를 파싱한다. (lxml이 성능향상에 좋음)

 

 


 

3) 데이터 추출

2)에서 파싱한 데이터에서 원하는 데이터를 추출, 처리한다.

 

이 단계에서 Python은 soup 객체의 find_all 혹은 find 함수를 사용해 데이터를 추출한다.

 

result = soup.find_all("a")
print(len(result))

 

 


2. 제한 규약 (robots.txt)

지식재산권을 침해하는 등의 피해를 방지하기 위해 웹 페이지마다 크롤링을 제한하는 규약이 있다.

웹 사이트 주소 끝에 'robots.txt'을 입력하면 크롤링을 허용하는 범위를 알려준다. 

 

나무위키에서 크롤링이 가능한 범위

 

크롤링개념과 크롤링 방식에 대해 알아보았다. 다음 회차에 Python으로 간단히 크롤링해보자.

 

 


Reference

 

웹 크롤링에 대해서

Data and Visualization

lumiamitie.github.io

 

크롤링 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

파이썬으로 크롤링 하기

requests와 Beautiful Soup을 사용해보기

medium.com

 

반응형

+ Recent posts