selenium 크롤링

파송송·2023년 10월 23일

크롤링

목록 보기
2/2

네이버 날씨 정보 크롤링 하기

webdriver, selenium

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager

ChromeDriverManager().install()

selenium -> chromedriver -> chrome

driver = webdriver.Chrome() # 우리가 컨트롤 할 수 있는 브라우저가 실행이된다.

driver.get("https://www.naver.com")

날씨 검색하기

  • 방법 1 (검색창 클릭->날씨 타이핑->검색버튼 클릭)
driver.find_element(By.ID, 'query').click() #검색창 클릭
driver.find_element(By.ID, 'query').send_keys("날씨") #날씨 타이핑
driver.find_element(By.ID, 'search-btn').click() #검색버튼 클릭
  • 방법 2
driver.find_element(By.ID, 'query').send_keys("날씨", Keys.ENTER)

온도 정보 가져오기

word = driver.find_element(By.CLASS_NAME, 'temperature_text').text
word

'현재 온도\n18.6°'


온도 정보만 가져오기

word.split("\n")[1]

'18.6°'


tag 안에 있는 정보

weather_list = driver.find_element(By.CLASS_NAME, 'summary_list').find_elements(By.TAG_NAME, 'dd')

for i in weather_list:
    print(i.text)

21.2°
50%
2m/s

네이버 환율 정보 크롤링 하기

find_element vs find_elements


1. find_element
driver.find_element(By.CLASS_NAME, 'spt_con').find_element(By.TAG_NAME, 'em')

<selenium.webdriver.remote.webelement.WebElement (session="26b33fcfd3cd773dba0f866765d8ade6", element="F58893A9FDE27A566E50C4D8BFCBB7B7_element_349")>

  1. find_elements
driver.find_element(By.CLASS_NAME, 'spt_con').find_elements(By.TAG_NAME, 'em')

[<selenium.webdriver.remote.webelement.WebElement (session="26b33fcfd3cd773dba0f866765d8ade6", element="F58893A9FDE27A566E50C4D8BFCBB7B7_element_349")>,
<selenium.webdriver.remote.webelement.WebElement (session="26b33fcfd3cd773dba0f866765d8ade6", element="F58893A9FDE27A566E50C4D8BFCBB7B7_element_350")>]

element : 조건에 일치하는 가장 첫번쨰 요소를 반환
elements : 조건에 일치하는 모든 요소를 list 형태로 반환

profile
잡다한거 다해요

0개의 댓글