공부공간

Web Crawling ) 시작하기 전에.. 본문

Natural Language Processing/Crawling

Web Crawling ) 시작하기 전에..

개발자가될수있을까? 2020. 1. 27. 21:20

언어 처리나 머신러닝관련 토이프로젝트를 진행할 때에 웹에서 데이터를 가져와서 

 

적절한 전처리를 통해 데이터 셋을 구현하곤한다.

 

이럴때에 사용하는 것이 웹크롤링 기술이다.

 

사실 웹크롤링관련 툴을 잘 다룬다고 해서 절대 아무 사이트나 막 크롤링을 하면안된다..

 

어찌됐든 사이트의 데이터도 그 회사의 자산이니 내가필요하다고해서 무단으로 사용하면 곤란해질수 있다.

 

관련사항은 구글에 Robot.txt 라고 검색해보면 알수있다. 

 

물론 아직 개인이 법적인 책임까지 간경우는 드물지만, 이점을 알고 사용하자.

 


이 포스트에서는

1) BeautifulSoup4를 이용한 정적인 사이트 크롤링

2 ) Selenium을 이용한 동적인 사이트 크롤링

 

을 다룰 것이다.

 

사실 매우 간단한 수준이라서 따라하면 금방 할 수있다.

 

둘의 차이는 앞서 말한것처럼 동적인 사이트와 정적인 사이트의 차이로 설명할 수 있다.

좀더 깊이는 Web에서 사용자 요청으로 처리되는 javascript event에 대해 페이지가 바뀌는 것을

크롤링 할수 있냐 없냐라고 생각해도된다.

 

이러한 이야기를 들으면 Selenium을 무조건적으로 사용하는게 좋아보이지만

Selenium은 Chrome Webdriver를 사용하여 동적이벤트를 직접 발생시키며 크롤링을 진행하기 때문에

속도가 앞선것에 비해 상당히느리다.. ( 추후에 직접해보면..)

 

또한 정부에서 제공하는 데이터셋이나, 공공데이터의경우 API Request를 보내어 JSON이나 XML 형태의 응답을

받는경우가 많은데, 이때도 bs4를 이용하면 쉽게 파싱할수있다.

 

때문에 사실 둘다 알고있는것이 편하다..

 


질문과 태클은 언제든지 환영입니다!

 

Comments