Web Crawling & Web Scraping

isTuna·2020년 12월 28일
0

Web 개발

목록 보기
9/19

개요

인터넷에는 방대한 데이터가 있지만 우리가 이 데이터를 활용하기 위해서는 먼저 필요한 데이터를 모아야합니다. 이 과정을 Web Crawling이라고 합니다. Web CrawlingWeb Scraping의 차이점과 관련 용어들을 정리해보겠습니다.

Web Crawling 이란?

Web Crawling은 조직적, 자동화된 방법으로 웹을 탐색하는 프로그램입니다. 머신러닝, 또는 블록체인와 같은 데이터가 많이 필요한 분야에서 특히 많이 사용되고, 배달 어플, 숙박 어플에서도 사용된다고 합니다.

Beautiful Soup

Beautiful SoupHtmlXML 파일로부터 데이터를 가져오기 위한 라이브러리 입니다. 파이썬에서 bs4를 이용하면 손쉽게 원하는 데이터를 가져올 수 있습니다.

 >>pip install bs4
 
 >>from bs4 import BeautifulSoup

크롤링을 위해서 Request라는 http request 라이브러리도 설치해 주어야합니다.
crawling_url = "http://books.toscrape.com"
만약 books.toscrape.com에서 데이터를 수집하고 싶으면,

crawling_url = "http://books.toscrape.com"

res          = requests.get(crawling_url)

bs           = BeautifulSoup(res.text, 'html.parser')

위 처럼 requestsBeautifulSoup 코드를 이용하면 됩니다.

Parser

Html Parser은 HTML의 문법을 이해하고, 페이지내의 기술된 정보를 적절히 분류해줍니다. 위에서는 Beautiful Soup에서 Parser은 4가지 존재합니다.

  • html.parser
  • lxml
  • xml
  • html5lib

Selenium

SeleniumBs만으로는 힘든 일들을 하게 해줍니다. 현대의 웹 페이지들은 html css로만 이루어져 있지 않고, js를 통해 render되는 경우가 대부분입니다. 그래서 렌더링이 되지 않은 상태에서 데이터를 수집하려고 하면 힘들 것입니다.

Selenium에서 제공하는 webdriver 모듈을 사용해서 동적 웹페이지에서도 Web Crawling이 가능하게 됩니다.

Web Scraping

Web ScapingHTTP를 통해 웹 사이트의 내용을 긁어다 원하는 형태로 가공하는 과정입니다. 데이터를 수집하는 모든 작업을 뜻하며, Web crawlingWeb Scraping의 일종입니다.

profile
청소연구소 개발자 (2021. 05~ )

0개의 댓글