[웹 크롤링]BeautifulSoup, Selenium 비교

생각하는 마리오네트·2021년 7월 26일
1

크롤링

목록 보기
1/2

정적수집과 동적 수집

정적수집동적수집
사용패키지urllib/requestsselenium
수집정적인 웹페이지정적,동적 웹페이지
수집 속도빠름(별도 페이지 조작 필요x)상대적으로 느리다
파싱 패키지beautifulsoupbeautifulsoup/selenium

정적 수집

  • 정적 수집은 멈춰있는 페이지의 html을 requests 혹은 urllib패키지를 이용해 가져와서 beautifulsoup패키지로 파싱하여 원하는 정보를 수집한다. 여기서 파싱(parsing)이란 복잡한 html 문서를 잘 분류, 정리하여 다루기 쉽게 바꾸는 작업
  • 바로 해당 url의 html을 받아와서 수집하기 때문에 수집 속도가 빠르다는 장점이 있지만, 여기저기 모두 사용할 수 있는 범용성은 떨어진다.

동적 수집

  • 동적 수집은 계속 움직이는 페이지를 다루기 위해서 selenium패키지로 chromdriver를 제어한다. 특정 url로 접속해서 로그인을 하거나 버튼을 클릭하는 식으로 원하는 정보가 있는 페이지까지 도달한다.

  • 이때 driver.find_elements_by(언더바) 함수를 이용하여 html을 곧바로 추출할 수 있고, driver.page_source함수를 이용해 전체 html을 받아 올 수도 있다. html전체를 받아와서 beautifulsoup로 하면, 페이지에서 하나하나 가져오는 것보다 수집속도가 빠른 특징이 있다. 이 부분은 선택사항이지만 다른코드를 이해하는 목적으로 둘다 알아두면 좋다.

  • 동적 수집의 특징은 정적 수집과 반대라고 생각하시면 됩니다. 브라우저를 직접 조작하고 브라우저가 실행될때까지 기다려주기도 해야해서 그 속도가 느리다는 특징이있습니다. 하지만 이는 상대적인 것이지사람이 직접하는 것보다는 훨씬 빠르니 기본적으로 동적 수집을 하고 필요시 정적 수집 방식을 이용하는게 어떨까 하는 것이 개인적인 생각입니다. 정적/동적 웹페이지에 모두 적용이 가능하다.

<레퍼런스 : https://coding-kindergarten.tistory.com/27 >
profile
문제를해결하는도구로서의"데이터"

2개의 댓글

comment-user-thumbnail
2023년 7월 8일

좋은 글 감사히 잘 읽고 갑니다^^

1개의 답글