[ 동적 크롤링 ]
동적 크롤링은 페이지 내부에서 조작이 필요한 데이터를 수집할 때 사용한다.
원하는 정보에 대한 추가 정보가 들어있는 페이지로 클릭, 이동 등으로 조작하여 데이터를 수집할 수 있다.
* 참고 : 정적 크롤링 vs 동적 크롤링 https://2chaechae.tistory.com/48?category=904830
[ 모각코+ 2일차 ] 정적 크롤링 vs 동적 크롤링
[ 정적 크롤링 ] 정적 크롤링은 로그인 등과 같은 사전 작업 없이, 한 페이지 내부에서 원하는 데이터를 수집할 때 사용 정적 크롤링은 주소를 통해 데이터를 요청하고 결과를 받는 것으로 과정
2chaechae.tistory.com
라이브러리 selenium
동적 크롤링을 사용하기 위해서는 selenium 라이브러리를 사용해야한다.
selenium은 웹 드라이버 ( web driver )를 사용해서 자동화를 실현하는 라이브러리이다.
* requests와 BeautifulSoup는 정적 크롤링을 위한 라이브러리 였다면 selenium은 동적 크롤링을 위한 라이브러리.
selenium은 사람이 데이터를 수집하는 방식 그대로 크롤링을 한다.
동적 크롤링은 정적 크롤링에 비해서 속도는 느리지만 클릭, 입력 등의 동작이 가능하기 때문에 정보를 수집하는
크롤링에서는 한계가 존재하지 않음
selenium 설치 및 import
cmd > pip install selenium
VScode > import selenium
chromedriver
selenium은 webdriver를 사용해서 자동화를 실현함
웹 드라이버는 많은 브라우저, 운영 체제 및 프로그래밍 언어를 지원하고
웹 응용 프로그램들의 테스트를 단순화 및 가속화 해주는 툴이다.
( 웹 브라우저를 자동으로 조작하기 위해서 프로그래밍 언어와 브라우저를 연결하는 매개체 )
크롬 브라우저를 사용하기 때문에 chromedriver.exe를 받아야함
chromedriver는 크롬 브라우저의 web driver이다.
< 다운로드 받기 >
ⓐ chrome 도움말 → chrome 정보 → chrome 버전 확인
ⓑ 링크 접속 : https://chromedriver.chromium.org/downloads
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 97, please download ChromeDriver 97.0.4692.36 If you are using Chrome version 96, please download ChromeDriver 96.0.4664.45 If you are using Chrome version 95, please download ChromeDriver 95.0.4638.69 For o
chromedriver.chromium.org
ⓒ chrome 버전과 컴퓨터 환경에 맞는 web driver 다운로드
ⓓ 다운로드한 exe 파일을 파이썬 코드 파일과 같은 폴더 위치로 이동
동적 크롤링
ⓐ selenium import 해오기
from selenium import webdriver
[ import + 라이브러리 ] 방식은 라이브러리 전체를 불러온다면 [ from + 라이브러리 + import + 함수/클래스 ]는
라이브러리에서 원하는 함수나 클래스만 호출함
from 라이브러리 import 함수/클래스
ⓑ chromedriver.exe를 selenium에 연결해서 웹 페이지를 조작하기
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
인자로 전달받은 드라이버 경로에 존재하는 웹 드라이버를 사용해서 자동화된 크롬창을 오픈.
* chromedriver는 찾기 쉬운 경로에 저장하는 것이 편함

실행했을 경우 위의 크롬 사이트가 출력되면 연결 성공
ⓒ 웹 페이지 이동하기
selenium도 get 함수를 사용해서 페이지를 이동할 수 있음
* get : 웹 페이지의 내용을 요청하는 함수
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
URL = "https://tv.naver.com/"
driver.get(URL)
time.sleep() 함수 : 시간 지연을 위한 함수
selenium은 페이지를 직접 이동해서 조작하기 때문에 지연 시간을 주는 것이 중요함
import time
time.sleep( 대기시간(초) )
from selenium import webdriver
import time
driver = webdriver.Chrome('./chromedriver')
URL = "https://tv.naver.com/"
driver.get(URL) # get 함수를 사용해서 웹 사이트의 내용 받아오기
time.sleep(3) # time의 sleep 함수를 이용해서 지연 시간 주기
driver.close() # 실행시킨 driver 종료
자동으로 크롬 창을 실행 시킨 후에 입력, 클릭 등의 작업을 자동화 해서 동적 크롤링을 진행
[ 10일차 문제 ]


저작권 출처 : https://cafe.naver.com/codeuniv
코딩 커뮤니티 - 코뮤니티 [파이썬/... : 네이버 카페
코뮤니티 [코딩공부/독학/스터디/대외활동] : python, C언어, java, 자바스크립트, HTML, CSS, 웹/앱개발
cafe.naver.com
'DATA > [ 모각코+ 12월 과정 ] 웹 크롤링' 카테고리의 다른 글
| [ 모각코+ 12일차 ] CSV 파일 (0) | 2022.01.05 |
|---|---|
| [ 모각코+ 11일차 ] 동적 크롤링 사용해보기 ② (0) | 2022.01.04 |
| [ 모각코+ 9일차 ] 정적 크롤링 사용해보기 ④ (0) | 2021.12.30 |
| [ 모각코+ 8일차 ] 정적 크롤링 사용해보기 ③ (0) | 2021.12.29 |
| [ 모각코+ 7일차 ] 정적 크롤링 사용해보기 ② (0) | 2021.12.28 |