크롤링 요소 검색 비교 : 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  (1) 2024.02.11
ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI  (1) 2024.02.09
'파이썬' 카테고리의 다른 글
  • [Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기
  • SQLAlchemy: 데이터베이스 툴킷
  • ChatGPT API의 function_call
  • ChatGPT API를 활용한 똑똑한 채팅봇 만들기: OpenAI
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (687) N
      • 상품 추천 (192) N
      • MongoDB (4)
      • 하드웨어 (12) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바