본문 바로가기
Stay Hungry Stay Foolish/웹 크롤링

웹 크롤링) Selenium VS BeautifulSoup 라이브러리 비교

by HANNI하니 2021. 2. 10.

크롤링에는 대표적으로 두 가지 라이브러리를 사용한다.

차이를 알아보자.

Selenium BeautifulSoup
웹 동작 html 정보 파싱
동적 크롤링을 효과적으로 수행
라이브러리 자체가 무겁고, 자주 막힌다
Requests와 BeatutifulSoup으로 최대한 해결하기

페이지 html 정보 가져오기 driver.page_source


웹동작시 driver.find_element_by_xpath(<b>'복사한 xpath'</b>)
(.click(), .send_keys() 등)


스크립트 실행시 driver.execute_script(<b>'원하는 명령어'</b>)


URL이나 xpath를 활용하는 경우에는 규칙을 찾아서 만들어두는 것이 작업 속도를 훨씬 높여준다.

soup = BeautifulSoup(html,'lxml')


soup.find_all(<b>'태그'</b>, attrs = {<b>'속성'</b> : <b>'속성 정보'</b>})의 구조로 검색한다.
(soup.find()의 경우도 동일)


soup.find_all()의 경우에는 리스트 형태로 결괏값을 반환하기 때문에 인덱싱을 해주어야 다른 함수들을 활용할 수 있다.(.text, .get 등)


부모 태그를 가지고 온 경우에 더 파싱이 가능하다. ex) soup.find(<b>'부모 태그'</b>).find(<b>'자식 태그'</b>) 
(실제 본인이 원하는 데이터를 얻고자 할 때 html 구조에서 헤매는 경우를 해결해 줄 수 있다.)

 

댓글