관리 메뉴

DeseoDeSeo

[Crawling] Selenium 라이브러리 본문

Python

[Crawling] Selenium 라이브러리

deseodeseo 2023. 8. 28. 12:46
브라우저를 자동제어하여 크롤링을 자동화 시키는 라이브러리
-  동적 크롤링을 진행 할 때 사용.
-  반드시 한번 설치가 필요.

 

# 라이브러리 설치
   pip => 파이썬의 모든 라이브러리를 설치할 수 있는 곳.
!pip install selenium


# 셀레니움 최신버전 업데이트
!pip install -U selenium


# 브라우저의 역할을 해주는 라이브러리
from selenium import webdriver as wb​

#컴퓨터용 키보드 불러오기

from selenium.webdriver.common.keys import Keys​

# 선택자의 구분자 역할을 해주는 라이브러리

from selenium.webdriver.common.by import By

 

 

1.크롬창을 실행
=
 web드라이버에게 크롬을 실행시켜줘 () 소괄호가 있으면 '기능 실행' 의미.
driver = wb.Chrome()

 

2. 특정 페이지로 이동(요청)
driver.get("http://www.naver.com")

 

3. 검색창에 검색어 입력
# 3 - 1: 검색창의 위치를 알아온다.
◇ selenium에서는 검사로 한번에 위치파악 안됨. 2번 눌러줘야함.
◇ soup.select("#query") 이렇게 하지만 여기서는 html파일이니까 아님
search = driver.find_element(By.ID,"query")

< 검색어 입력됨  >

search.send_keys("스페인")

 

키보드의 값을 보낼때는 Keys라이브러리를 사용
( 대문자로 작성해야한다.(ENTER, END ...)
search.send_keys(Keys.ENTER)

 

4. 스크롤을 화면 최하단으로 이동
:
하단의 데이터도 로딩 시키기 위해서,  화면의 키보드에 있는 END키를 보내줄것임 
body = driver.find_element(By.TAG_NAME,"body")
body.send_keys(Keys.END)

 

5. 페이지 뒤로가기
(
뒤로가기 기능은 html태그가 아니라 driver에 있음. 앞으로 갈때는 forward )
driver.back()

 

6. 다시한번 검색창에 새로운 검색어를 입력.
# 화면이 바뀌면 (= 화면이 이동했다면)  컴퓨터는 과거 화면을 다 잊어버린다.
# 반드시 요소를 새로 검색 후, 명령을 부여해야한다
search = driver.find_element(By.ID,"query")
search.send_keys("스코틀랜드")

 

7. 검색 : 검색 버튼을 클릭
btn = driver.find_element(By.CLASS_NAME,"btn_search")
btn.click( )

 

8. 창을 종료시킴.
driver.quit()

 

 


< 참고사항>

- 수업때 진행한 방식은 최신 버전의 코드임.

-  1. 크롬드라이버- 컴퓨터용 크롬

-  1.1 wb.Chrome( "크롬 드라이버의 경로 ")

-  최신버전 : find_element(By.ID)

-  예전 버전 : find_element_by_id()

 

+ Bonus

span 태그는 옆으로 붙는다.( 줄바뀜 안됨):