프로그래밍/Python 웹 스크래핑
#3 XPATH를 이용한 주요 뉴스 불러오기
쿠리 Kuri
2022. 6. 29. 18:30
반응형
오늘 할 실습은
네이버 뉴스에서 연예 주요 뉴스와 IT/보안 주요 뉴스를 스크래핑 해오도록 하겠다.
자세한 설명은 앞 포스터에 나와 있으니, 참고 바란다.
코드 예시
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.maximize_window()
url1 = 'https://entertain.naver.com/home'
browser.get(url1)
def wait_until(xpath_str):
WebDriverWait(browser, 30).until(EC.presence_of_element_located((By.XPATH, xpath_str)))
wait_until('//div[@class="aside_hit_cmp"]')
entertain =browser.find_element(By.XPATH, '//div[@class="aside_hit_cmp"]')
print("TV 연애 주요 뉴스\n")
print(entertain.text)
news_click=browser.find_element(By.XPATH, '//*[@id="header"]/div/div[2]/h1/a[3]')
news_click.click()
wait_until('/html/body/section/header/div[2]/div/div/div[1]/div/div/ul/li[6]/a/span')
it_click = browser.find_element(By.XPATH, '/html/body/section/header/div[2]/div/div/div[1]/div/div/ul/li[6]/a/span')
it_click.click()
wait_until('//*[@id="snb"]/ul/li[5]/a')
sec_click = browser.find_element(By.XPATH, '//*[@id="snb"]/ul/li[5]/a')
sec_click.click()
wait_until('//*[@id="main_content"]')
security_news = browser.find_element(By.XPATH, '//*[@id="main_content"]')
print("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ\n")
print("IT 보안 주요 뉴스\n")
print(security_news.text)
browser.quit()
결과 값
위 내용이 한번에 출력 되면서 페이지가 종료된다.
전 포스터와 같이 wait 함수를 만들어서 내가 클릭하거나, 스크래핑 할 요소가 나올 때 까지 기다리도록 설정 하였으며,
이번에는 어떤 한 정보만 불러 오는 것이 아닌 두가지 정보를 동시에 불러와야 하므로,
print 를 활용해 주요 카테고리를 정리 했다.
반응형