개발/python
셀레니움 크롤링 값이 안나올 때(text)(frame)
북치기_개발모드
2022. 4. 6. 18:41
반응형
셀레니움에서 크롤링 코드 맞게쳤는데도 값이 안나오면 프레임이 있는지 확인해보고 바꿔줘야함.
셀레니움이 참 멍청한건지 프레임이 다르면 값을 가져오질 못하더라고...
그래서 프레임을 변경해줘야한다.
# 메인프레임변경해주기
driver.switch_to.frame('coinfo_cp')
예시) 네이버 금융 재무재표 가져올 때

기존 코드
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome('C:\chromedriver99.exe')
url = 'https://finance.naver.com/item/coinfo.naver?code=000660'
driver.get(url)
# 유보율 xpath
ubo = "/html/body/div/form/div[1]/div/div[2]/div[3]/div/div/div[14]/table[2]/tbody/tr[13]/td[7]/span"
ubo_result = driver.find_element_by_xpath(ubo)
print(ubo_result.text)
변경
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome('C:\chromedriver99.exe')
url = 'https://finance.naver.com/item/coinfo.naver?code=000660'
driver.get(url)
# 메인프레임변경해주기
driver.switch_to.frame('coinfo_cp')
# 켜질 때 까지 최대 10초 기다린다.
driver.implicitly_wait(10)
# 유보율 xpath
ubo = "/html/body/div/form/div[1]/div/div[2]/div[3]/div/div/div[14]/table[2]/tbody/tr[13]/td[7]/span"
ubo_result = driver.find_element_by_xpath(ubo)
print(ubo_result.text)
값 잘나옴

반응형