Developer/Data Science

python scrapy 를 활용한 웹 크롤링/스크래핑 - 1

디큐로그 2020. 12. 21. 18:38
728x90

개발 환경

MacOS Catalina
python 3.9


들어가며...

먼저 용어부터 깔끔하게 정리하자.
웹 크롤링이라는 용어가 웹 사이트들을 돌아다니는 것 자체를 의미한다면,
웹 스크래핑이 우리가 생각하는 웹 사이트들의 정보를 모으는 것을 의미한다.
우리가 사용할 framework 인 scrapy 도 웹 스크래핑을 위해 태어난 프레임워크이다.

여기서 드는 의문점
 왜 Beautifulsoup 안쓰나요? 
 - 안다. 유명한거. 그렇지만 몇번의 리서치 결과 나는 프로젝트 단위에서 자주 사용 + 성능 이슈 때문에 scrapy 를 선택하게 되었다. 
   관련된 내용은 아래 이미지를 참고하자. (출처 영어 주의) 

출처: https://proxyway.com/guides/scrapy-vs-beautiful-soup-vs-selenium

아무래도 scrapy 가 프레임워크의 성격을 갖고 있는지라, 초기에 세팅하는데에 진입장벽이 조금 있다. 
그래서 일반적인 toy project 를 실습해보고 싶으신 분들은 beautiful soup 를 쓰는게 마음 편할 것이다. 

다만, 나처럼 여러 사이트를 지속적으로 스크래핑하는 태스크를 맡게되었다면, scrapy 를 선택하는 것이 옳은 선택일거라 생각한다. 

설치하기

굉장히 심플하다. 아래 그림은 공식 홈페이지를 들어가보면 볼 수 있는데, 한줄의 명령어로 설치가 가능하다. 

pip install scrapy

출처: https://scrapy.org/

이 튜토리얼을 따라오고자 하는 분들 정도라면 python 의 virtualenv 에 대해 알고 있을테니 따로 언급하지는 않겠다. 
scrapy 프로젝트가 사용하는 라이브러리들이 꽤나 까다로운게 있기 때문에 venv 에 따로 관리를 하는 것을 추천한다.

자, 설치하셨는가?

시작이 반이다. 오늘은 여기까지 하고 2편으로 넘어가자. 

 

도움이 되셨다면 카누 한잔 어떠신가요?
카누로부터 돈을 받지는 않았지만 제가 카누를 좋아합니다.
 “파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"

반응형