Selenium 라이브러리
- 파이썬으로 브라우저를 조작하는 라이브러리
- 사람이 하는 모든 행위를 똑같이 만들 수 있는 라이브러리
- 주의점! 반드시 사람처럼 동작할 수 있게 코드를 작성해야 한다.
- 주의점! 명령을 내릴 때는 하나하나 친절하게 알려줘야 한다.
selenium은 반드시 한번 설치가 필요하다.
!pip install selenium
브라우저를 담당하는 라이브러리
from selenium import webdriver as wb
선택자를 구분할 때 사용하는 라이브러리
from selenium.webdriver.common.by import By
컴퓨터용 키보드 (엔터, del, end) 기능을 가진 키를 입력
from selenium.webdriver.common.keys import Keys
#1. 크롬창을 실행
구버전 : 소괄호 안에 크롬드라이버의 경로를 작성
신버전 : 자동으로 설치
driver = wb.Chrome()
#2. 사이트로 이동
대화 : driver에게 네이버사이트 가져와!
driver.get("http://www.naver.com")
req로 데이터를 받아올 때는 bs이 필수 -> text -> HTML 바꾸기 위해서
그러나! driver는 가지고 있는 데이터가 HTML -> bs이 필요하지 않다.
3. 검색창에 검색어 입력
키포인트 : 명령을 내릴 대상을 찾은 후 -> 명령을 실행
대화 : driver에게 요소를 찾아줘! 아이디가 #query인 요소를 찾겠다.
구버전 : driver.find_element_by_id("query")
search = driver.find_element(By.ID,"query")
search에게 "강아지"값을 보내준다.
특정 요소에게 값을 보낼때(검색) -> send_keys
search.send_keys("강아지")
search에게 키보드에 있는 엔터를 보내준다.
search.send_keys(Keys.ENTER)
5. 화면을 맨 밑으로 이동 -> 데이터를 더 많이 받기위해서
대화 : body태그에게 키보드에 있는 END 값을 보내줘!
body = driver.find_element(By.TAG_NAME,"body")
body.send_keys(Keys.END)
#6. 페이지 뒤로가기
driver.back()
#7. 검색창에 고양이 검색
키포인트 : 화면이 바껴서 다른 페이지로 이동하면, 기존 데이터가 증발
다시 요소를 찾는 행위를 반드시 해줘야한다.
search = driver.find_element(By.ID,"query")
search.send_keys("고양이")
search.send_keys(Keys.ENTER)
#8. 텍스트 수집
cat = driver.find_elements(By.CSS_SELECTOR,"#mflick > div > div > ul > li > div > div > strong > a")
#9. 텍스트만 추출후 저장
name_list = []
for i in cat :
name_list.append(i.text)
name_list
10. 창 종료
2가지 방법 close vs quit
close : 열려있는 탭만 종료
quit : 전체 브라우저를 종료
driver.quit()