Computer Security

#3 XPATH를 이용한 주요 뉴스 불러오기 본문

프로그래밍/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 를 활용해 주요 카테고리를 정리 했다.

 

 

Comments