파이썬 python

파이썬 초보 프로젝트 크롤링 2편 - 웹 크롤링 심화 selenium 사용하기.

studying develop 2021. 8. 20. 23:23

크롬드라이버 설치가 필요함.

 

from selenium import webdriver
import time

#크롤링에 주의가 필요함.
#네이버 정책상 자사의 데이터를, 다른 개인이나 업체가 디비화하는 것을 금지하고 있습니다.
#실습시 너무 빠르게 요소를 클릭하거나 이상할정도의 빈번한 접근은 네이버에 의해 차단이 걸림 딜레이를 5초~ 이상 주면서 주의합니다...

#크롬 개발자 모드에 대한 설명이 필요하다. ctrl+ f로 필요한 태그 찾는 방법도 알아야됨.

def macroRun():
    #chromedriver를 다운받는다.
    driver = webdriver.Chrome('/Users/gimdonghwan/파이썬강의준비/chromedriver')

    url = "https://finance.naver.com/item/main.nhn?code=005930"
    driver.get(url)

    #기업 가격 가져오기
    xpath1 = "//em[@class='no_down']"
    priceElem = driver.find_element_by_xpath(xpath1)

    #text는 하위 텍스트들을 모두가져와 출력한다.
    #7\n2\n,\n7\n0\n0\n으로 받아져서.
    replacedStr = priceElem.text.replace('\n', "")
    print(replacedStr)

    #기업 설명 요약 클릭하기.
    xpath5 = "//em[@class='summary']"
    summaryShowButton = driver.find_element_by_xpath(xpath5)
    summaryShowButton.click()

    time.sleep(1)

    #기업 설명 요약 가져오기.
    xpath3 = "//div[@id='summary_info']"
    summaryInfoElems = driver.find_element_by_xpath(xpath3)
    print(summaryInfoElems.text)

    #2초 있다 누른다.
    time.sleep(2)

    #기업 뉴스
    xpath2 = "//a[@class='tab5']"
    # 뉴스탭을 클릭한다.
    driver.find_element_by_xpath(xpath2).click()

    #https://pythondocs.net/selenium/%EC%85%80%EB%A0%88%EB%8B%88%EC%9B%80%EC%9C%BC%EB%A1%9C-%EC%97%98%EB%A0%88%EB%A8%BC%ED%8A%B8%EA%B0%80-%EC%B0%BE%EC%95%84%EC%A7%80%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8B%A4%EB%A9%B4/
    #https://scribblinganything.tistory.com/220
    #selnium을 'news' 프레임으로 이동시킨다.
    driver.switch_to.frame('news')

    xpath4 = "//a[@class='tit']"
    titleInfoElems = driver.find_element_by_xpath(xpath4)

    print(titleInfoElems.text)

    #원래 프레임으로 다시 돌아온다.
    driver.switch_to.default_content()

    #프로그램이 종료 안되게 하려고
    time.sleep(10000)

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    macroRun()

# See PyCharm help at https://www.jetbrains.com/help/pycharm/