티스토리 뷰
안녕하세요 종백이 입니다😎
올해부터 사업을 시작하면서 여러 사이트의 정보를 갖고 와야 했고 그 과정에서 얻은 경험을 공유해 보려고 합니다ㅎㅎ
우선 전공자가 아니기 때문에 장점이나 단점은 제가 직접 겪은 사실 위주로 작성하겠습니다 ㅎㅎ 혹시 제가 말한 정보가 틀리거나 어떤 방식으로 하면 더 좋은지 팁이 있으면 꼭좀 댓글로 알려주시면 감사드리겠습니다 ㅎㅎ
보통 크롤링을 동적크롤링과 정적 크롤링으로 나누던데 저는 동적 크롤링 안에 정적 크롤링이 있는 것으로 보고 동적 크롤링에 대해서만 이야기하겠습니다. 요즘 사이트의 기능도 복잡해지고 다양해서 자바스크립트나 외부 API의 데이터를 받아오는 사이트들이 늘어났더라고요 ㅎㅎ
파이썬으로 크롤링을 할때는 크게 세 가지의 모듈을 사용합니다.
첫째는 selenium, 둘째는 requests, 셋째는 bs4의 BeautifulSoup.
우선 selenium에 대해서 먼저 말해보겠습니다. selenium은 크롬(사파리 or 파이어폭스)을 띄어서 해당 사이트로 이동하고 버튼을 누르는 등 동적 활동을 직접 할 수 있는 도구입니다.
장점이라고 하면 사람이 하는 것과 동일한 효과를 줄 수 있는 것입니다.
단점이라고 하면 사람이 하는 것처럼 하다 보니 캐시데이터를 다 받고 하다보니 느리고 저에게는 가장 큰 단점이었는데 chromedriver를 같이 사용하다 보면 메모리를 너무 많이 먹어서 컴퓨터가 벅차 했습니다.(물론 한 가지 작업만 할 때는 문제없습니다.)
requests는 사이트의 html을 직접 요청하고 전달받는 데 성공하면 BeautifulSoup으로 해독? 하여 원하는 위치의 문자열을 갖고 올 수 있는 도구입니다.
장점이라고 하면 매우 빠릅니다. 그래서 서버에 부하를 주지 않기 위해 일부러 time.sleep을 해 줍니다.
단점이라고 하면 서버에 요청 시 필요한 header와 parameter를 다 파악해야 하고 동적 크롤링을 위해서는 특정 행동을 했을 때 사이트에서 어떤 반응을 하는지 사전에 미리 파악하는 작업이 필요해서 번거롭습니다.
저는 주로 selenium보다 requests를 사용하는데 그 이유는 빠르고 가볍게 돌리기 위함입니다 ㅎㅎ
한 번에 다 쓰려고 했는데 쓰다 보니 각자 설명할게 많을 것 같아서 selenium사용법 글과 requests로 동적 크롤링하는 글 두 가지를 추가로 작성하고 작성하면서 실제 사업에 어떻게 써먹고 있는지 공유하려고 합니다 ㅎㅎ
제 글이 도움이 되었다면 좋아요 부탁드립니다!
'독학 > python' 카테고리의 다른 글
[파이썬] cx_freeze pyinstaller 실행 파일 배포 .exe 만들기: on console 'NoneType' object has no attribute write error 해결 방법 (0) | 2023.04.12 |
---|---|
[파이썬] requests 모듈을 사용한 python동적크롤링 따라하기 (0) | 2023.03.12 |
[파이썬] 셀레니움 동적 크롤링 웹 자동화 python selenium example (0) | 2023.01.23 |
[파이썬] 네이버 커머스 API requests post로 서버에 이미지 보내기 (8) | 2022.11.12 |
- Total
- Today
- Yesterday
- 그림독학
- 책추천
- 경매참고자료
- GRBL
- 웹앱독학
- 제로이드
- 네이버커머스api
- JS독학
- 주식시장거품
- 브리타정수기
- selenium
- 상위노출프로그램
- 주식독학
- javascript독학
- 프로그래밍독학
- 인플레이션
- javascript
- 파이썬
- flutter네이버커머스api
- 주식종목
- 책리뷰
- 파이썬독학
- 파이썬셀레니움
- 경매동향
- CNC업그레이드
- 수부지추천
- 주식분석
- 자바스크립트독학
- 파이썬실전
- 눈시림없는선크림
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |