BeatifulSoip vs. Selenium

yoonene·2022년 8월 19일
0

면접대비

목록 보기
8/17

Q : 크롤러를 파이썬으로 구현할 때 BeautifulSoup과 Selenium의 장단점은 무엇일까요?


BeautifulSoupSelenium
HTML, XML Parsing웹 페이지 자동화 검증 Tool (클릭, 스크롤, sleep)
정적 페이지동적 페이지
빠름, 메모리 절약느림, 메모리 요구 큼

BeautifulSoup을 사용하는 경우는 웹 페이지의 정보를 다운로드 받은 뒤 브라우저에서 정보를 가져오지 않고, 다운로드 한 정보 안에서 필요한 내용을 찾는 것이기에 속도가 빠르다. (정적인 페이지)

반대로 Selenium만 이용하는 경우 웹 페이지에 계속 접속하고 있기 때문에 필요한 내용을 찾을 때 속도가 느리다. 대신, 클릭, 입력, 삭제 등의 브라우저 조작이 가능하다. (동적인 페이지)

  • BeautifulSoup
    • HTML, XML파일의 정보를 추출해내는 python library
    • python 내장 모듈인 request나 urllib을 이용해 HTML을 다운 받고, beautifulsoup으로 데이터를 추출
    • REST API에서 데이터를 가져올 때에도 사용됨
    • 서버에서 HTML을 다운받음
    • HTML을 파싱하고 데이터를 크롤링 하는데에만 쓰임
  • Selenium
    • 자동화 테스트(버튼 클릭, 스크롤 조작 등등)에 사용되는 프레임워크
    • 셀레늄을 이용한 크롤러는 웹 페이지에서 javascript 렌더링을 통해 생성되는 데이터들을 손쉽게 가져올 수 있음
    • 인터넷 브라우저를 통해 크롤링을 하는 개념이라, 실제 보여지는 웹 페이지의 전부를 가져올 수 있고, 디버깅 방법 또한 직관적
    • 웹 브라우저를 실제로 진행시키는 방법이기 때문에 속도도 많이 느리고, 메모리도 상대적으로 많이 차지
    • 멀티프로세스를 사용해서 여러 브라우저로 크롤링 하도록 하면 속도를 일정 부분 개선가능
    • 페이지의 단일 element에 접근하는 메소드

참조 : https://coding-kindergarten.tistory.com/27

면접 질문 출처
https://github.com/zzsza/Datascience-Interview-Questions

profile
NLP Researcher / Information Retrieval / Search

0개의 댓글