DeseoDeSeo
[Crawling] Selenium 라이브러리 본문
브라우저를 자동제어하여 크롤링을 자동화 시키는 라이브러리
- 동적 크롤링을 진행 할 때 사용.
- 반드시 한번 설치가 필요.
# 라이브러리 설치
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 태그는 옆으로 붙는다.( 줄바뀜 안됨):
'Python' 카테고리의 다른 글
[Machine Learning] iris_knn분류실습 (0) | 2023.08.28 |
---|---|
[Crawling] 도시락 업체 데이터 수집 (0) | 2023.08.28 |
[Python] pandas 추가 (0) | 2023.08.25 |
[Machine Learning] BMI 학습 (0) | 2023.08.25 |
[Machine Learning] 탐색적 데이터 분석, 모델링 (0) | 2023.08.25 |