인터넷에는 방대한 데이터가 있지만 우리가 이 데이터를 활용하기 위해서는 먼저 필요한 데이터를 모아야합니다. 이 과정을 Web Crawling
이라고 합니다. Web Crawling
과 Web Scraping
의 차이점과 관련 용어들을 정리해보겠습니다.
Web Crawling
은 조직적, 자동화된 방법으로 웹을 탐색하는 프로그램입니다. 머신러닝
, 또는 블록체인
와 같은 데이터가 많이 필요한 분야에서 특히 많이 사용되고, 배달 어플, 숙박 어플에서도 사용된다고 합니다.
Beautiful Soup
은 Html
과 XML
파일로부터 데이터를 가져오기 위한 라이브러리 입니다. 파이썬에서 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')
위 처럼 requests
와 BeautifulSoup
코드를 이용하면 됩니다.
Html Parser
은 HTML의 문법을 이해하고, 페이지내의 기술된 정보를 적절히 분류해줍니다. 위에서는 Beautiful Soup
에서 Parser
은 4가지 존재합니다.
Selenium
은 Bs
만으로는 힘든 일들을 하게 해줍니다. 현대의 웹 페이지들은 html
css
로만 이루어져 있지 않고, js
를 통해 render
되는 경우가 대부분입니다. 그래서 렌더링이 되지 않은 상태에서 데이터를 수집하려고 하면 힘들 것입니다.
Selenium
에서 제공하는 webdriver
모듈을 사용해서 동적 웹페이지에서도 Web Crawling
이 가능하게 됩니다.
Web Scaping
은 HTTP
를 통해 웹 사이트의 내용을 긁어다 원하는 형태로 가공하는 과정입니다. 데이터를 수집하는 모든 작업을 뜻하며, Web crawling
은 Web Scraping
의 일종입니다.