파이썬 크롤링 라이브러리로 크게 BeautifulSoup4, requests, , selenium, scrapy 등이 있다.
[ BeautifulSoup4 ]
BeautifulSoup4는 파이썬 내장 모듈인 requests, urllib를 이용해 HTML 을 받아오고 beautifulSoup로 추출한다.
- 장점
- 쉽고, 빠르고(병렬 처리시), 간단하다.
- 단점
- HTML을 받아오기 때문에 SPA (ex. vue.js에서 라우팅 기능을 사용하여 페이지를 하나만 유지시키는 것)이나 js가 적용된 페이지를 크롤링하기엔 어렵다.
[ lxml ]
기본적으로 BeautifulSoup에서는 BeautifulSoup(html, 'html.parser') 와 같이 html parser 를 사용할수도 있지만 lxml 모듈을 설치하여 속도를 빠르게 할 수 있다. 사용방법으로 BeautifulSoup(html, 'lxml') 과 같다.
pip install lxml
[ selenium ]
웹 자동화 테스트에 사용되는 프레임워크로 웹 브라우저를 실제로 실행시켜 클릭을 하고 스크롤을 올리고 내리기에 속도가 많이 느리고 메모리도 많이 차지하게 된다.
- 장점
- JavaScript도 렌더링하여 데이터를 추출 할 수 있다.
- 단점
- 웹브라우저를 실제로 실행하기에 (우리가 보는 정보를 모두 가져올 수 있다는 장점도 될 것 같다. ) 속도가 느리고, 메모리 사용이 상대적으로 크다.
[ scrapy ]
유료이며 크롤링을 위해 개발된 프레임워크이다.
- 장점
- Django 처럼 벡엔드 서비스와 연동하기 편리하고 플러그인이 다양하다.
- 문서화가 잘되며 기능구현이 잘 되어있다.
- 단점
- 플러그인간의 호환이 안되는 경우가 있다.
[ 참고 자료 ]
Python 웹 크롤러 도구 비교 및 사용 후기(Scrapy vs selenium vs Requests, urllib)
웹 크롤러 개발 언어로 Python을 선택했다면, 개발 효율성을 높혀줄 여러가지 라이브러리와 프레임워크가 있습니다.
keyhyuk-kim.medium.com
- https://www.baragi.net/bbs/board.php?bo_table=dev&wr_id=8858
'🌱 프로젝트 > 크롤링' 카테고리의 다른 글
크롤링, 스크래핑, 파싱 (0) | 2022.09.30 |
---|