코샵
끄적끄적 코딩 공방
코샵

인기 글

  • 분류 전체보기 (475) N
    • MongoDB (4)
    • 일기장 (4)
    • Unity (138)
      • Tip (41)
      • Project (1)
      • Design Pattern (8)
      • Firebase (6)
      • Asset (2)
    • 파이썬 (127)
      • Basic (40)
      • 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 (44) N
      • CSS (6) N
    • Git (11)
    • SQL (5)
    • Flutter (10)
      • Tip (1)
    • System (1)
    • BaekJoon (6)
    • Portfolio (2)
    • MacOS (1)
    • 유틸리티 (1)
    • 서비스 (6)
    • 자동화 (3)
    • Hobby (10)
      • 물생활 (10)
      • 식집사 (0)
전체 방문자
오늘
어제

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
코샵

끄적끄적 코딩 공방

파이썬

크롤링 요소 검색 비교 : 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로 파이썬 코드 성능 분석하기  (1) 2024.12.02
SQLAlchemy: 데이터베이스 툴킷  (4) 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
    코샵
    코샵
    나의 코딩 일기장

    티스토리툴바