크롤링 요소 검색 비교 : Selenium vs BeautifulSoup

2024. 2. 2. 10:40·파이썬
반응형

Selenium과 BeautifulSoup은 모두 웹 페이지를 자동화하는 데 사용되는 프레임워크입니다. 두 프레임워크 모두 웹 페이지에서 요소를 찾을 수 있는 find 함수를 제공합니다.

 

이 글에서는 Selenium과 BeautifulSoup에서 find 함수의 성능을 비교해 보겠습니다.

테스트 코드

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.naver.com/')
html = BeautifulSoup(driver.page_source, 'html.parser')

start = time.time()
for i in range(1000) :
    driver.find_element(By.ID, 'query')
selenium_time = time.time() - start 

start = time.time()
for i in range(1000) :
    html.find(id = 'query')
beautifulsoup_time = time.time() - start

print(f'{selenium_time:.5f} {beautifulsoup_time:.5f}')

 

테스트 결과

테스트 결과는 다음과 같습니다.

Selenium: 3.00734 
BeautifulSoup : 0.18828

결과를 보면, BeautifulSoup의 find 함수가 Selenium의 find_element 함수보다 약 16배 빠릅니다.

 

성능 차이의 원인

Selenium의 find_element 함수는 브라우저의 웹 드라이버를 사용하여 웹 페이지를 로드하고, 페이지의 DOM 트리를 순회하여 요소를 찾습니다. 따라서, 웹 페이지의 크기가 크거나 DOM 트리가 복잡할수록 성능이 저하될 수 있습니다.

BeautifulSoup의 find 함수는 웹 페이지의 HTML 소스 자체를 사용하여 요소를 찾습니다. 따라서, 웹 페이지의 크기나 DOM 트리의 복잡도에 상관없이 일정한 성능을 유지할 수 있습니다.

결론

Selenium과 BeautifulSoup은 모두 웹 페이지를 자동화하는 데 유용한 프레임워크입니다. 하지만, 요소를 찾는 성능을 고려한다면, BeautifulSoup이 더 나은 선택입니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬' 카테고리의 다른 글

데이터 클래스 비교: dataclass vs Pydantic BaseModel  (0) 2024.12.08
[Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기  (2) 2024.12.02
SQLAlchemy: 데이터베이스 툴킷  (5) 2024.11.13
ChatGPT API의 function_call  (2) 2024.02.11
ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI  (1) 2024.02.09
'파이썬' 카테고리의 다른 글
  • [Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기
  • SQLAlchemy: 데이터베이스 툴킷
  • ChatGPT API의 function_call
  • ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    셀레니움
    카페24리뷰
    programming101
    cv2
    스마트스토어리뷰
    믈레코비타멸균우유
    Python
    라떼우유
    쇼핑몰리뷰
    rtsp
    codingcommunity
    devlife
    list
    ipcamera
    appdevelopment
    상품 리뷰 크롤링
    리스트
    스크립트 실행 순서
    긴유통기한우유
    리뷰관리
    스크립트 실행
    파이썬
    리뷰이관
    unity
    learntocode
    codingtips
    programmerlife
    카페24리뷰이관
    C#
    유니티
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
크롤링 요소 검색 비교 : Selenium vs BeautifulSoup
상단으로

티스토리툴바