관리 메뉴

RUBY

[WebData][Oil] 2. Selenium 기초 본문

데이터 분석/EDA_웹크롤링_파이썬프로그래밍

[WebData][Oil] 2. Selenium 기초

ruby-jieun 2023. 2. 6. 01:33

 

 

 

웹 데이터 수집하고 정리하기
Oil Price Analysis and Green construction
2. Selenium 기초

 


 

 

셀레니움을 이용해보자..

 

1.

  • 크롬드라이버 실행
  • webdriver.Chrome 명령으로 크롬 드라이버의 경로 지정
  • get 명령으로 접근하고 싶은 주소 지정

!pip install selenium

 

2.

이 놈은 무엇인가... 아.... 최신버전에서는 다른 설치 방법을 권장한단다.

그럼 최신으로 해야지!

! pip install webdriver_manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://pinkwink.kr/") # get 명령으로 접근하고 싶은 주소 지정

 

 

 

3. 현재 브라우저 창 크기

driver.get_window_size()

 

 

4.

driver.get_window_rect()

 

 

5.

 - 스크롤 가능한 높이(길이)
 - 자바스크립트 코드 실행

last_height = driver.execute_script("return document.body.scrollHeight")
last_height

 

 

6. 화면 스크롤 

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

 

 

7. 스크린샷

driver.save_screenshot("./last_height.png")

 

 

8. 스크롤 상단 이동

driver.execute_script("window.scrollTo(0, 0);")

 

 

9.

from selenium.webdriver.common.by import By
some_tag = driver.find_element("name", "comment")
some_tag.send_keys("jieun")

 

 

10. 특정 태그 지점까지 스크롤 하는 코드 

from selenium.webdriver.common.by import By

some_tag =driver.find_element(By.XPATH, '//*[@id="mArticle"]/div[11]/span/a[8]')
action = ActionChains(driver)
action.move_to_element(some_tag).perform()

 

 

11. 브라우저 창 크기 조절(현재 보이는 화면에서만 액션을 취할 수 있습니다)

driver.set_window_size(1920, 1080)

 

 

12. 화면 최대화 

driver.maximize_window()

 

 

13. 화면 최소화 

driver.minimize_window()

 

 

14. 입력 창에 글자 넣기(화면에 보이지 않으면 입력할 수 없습니다)

some_tag = driver.find_element("name", "comment")
some_tag.send_keys("jieun")

 

 

 

15. 새로 입력하면 뒤에 추가로 붙음 

some_tag.send_keys("Ruby")

 

 

16. 초기화 후 검색어 입력 

some_tag.clear()
some_tag.send_keys("jieun")

 

 

 

17. xpath 버튼 클릭 실행하기

xpath = '//*[@id="mArticle"]/div[11]/span/a[8]'
some_tag = driver.find_element(By.XPATH, '//*[@id="mArticle"]/div[11]/span/a[8]').click()

 

 

18. 현재 화면의 html 코드 가져오기 

driver.page_source
Comments