본문 바로가기

파이썬

[파이썬] Selenium으로 웹크롤링 방법(XPath로 가져오기)

반응형

 

주의 : 저는 전문가가 아니며, 취미로 코딩을 하는 초보자입니다 ^^

넓은 마음으로 읽어주세요~

 

원래 BeautifulSoup 를 쓰다가 크롤링이 안될때가 있어서 Selenium으로 갈아 타게 되었네요

BeautifulSoup 보다 Selenium이 더 쉬운거 같습니다 ..ㅎㅎ

 

Selenium 라이브러리를 통해 웹크롤링을 해보겠습니다.

웹브라우저는 Chrom을 사용한다고 가정하겠습니다.

 

1. 라이브러리를 설치해주세요

   pip install selenium

 

2. 크롬 webdriver 를 다운받아줍니다.

chromedriver.chromium.org/downloads

 

위 링크를 들어가서 아래 다운로드 링크중 본인의 크롬 버전에 맞는 녀석을 다운받아줍니다.

 

※크롬 버전 확인하는 방법

 

 

(코드예제)

from selenium import webdriver

driver = webdriver.Chrome('C:\\Users\\CYM\\PycharmProjects\\TelegramBot\\chromedriver')
driver.get('https://scolkg.com/')
driver.implicitly_wait(time_to_wait=5)
element = driver.find_element_by_xpath('//*[@id="app_coinboard"]/div[2]/table/tbody/tr[8]/td[6]').text
driver.quit()

(코드분석)

from selenium import webdriver

driver = webdriver.Chrome('WebDriver.exe 파일 있는 경로 입력')
driver.get('크롤링할 URL 입력')
driver.implicitly_wait(time_to_wait=5)
element = driver.find_element_by_xpath('크롤링 원하는 값 XPath 입력').text
driver.quit()

 

 

● chromedriver.exe 경로입력할때 폴더경로 입력하고, 파일명은 exe 제외하고 입력하면 된다.

 

 implicitly_wait(time_to_wait=5) 의 의미는 5초 동안 페이지가 로딩되는걸 기다려주다는 의미

 

 find_element_by_xpath 는 html의 xpath 를 이용애 원하는 값을 긁어온다.

    뒤에 .text를 입력하면 그중 텍스트만 읽어올 수 있다.

 

    - Xpath 가져오는 방법 : 크롬 우클릭 -> 검사 클릭

     아래 아이콘 클릭해서 웹화면에 갖다대고 클릭하면 html 코드 위치를 알수 있음

     해당코드를 우클릭해서 Copy -> Copy XPath 클릭 

driver.quit() 은 크롤링이 완료된후 웹브라우저를 닫는다.

 

 

이정도만 알면 크롤링해서 값 불러오는데는 문제 없는거 같네요 ~

 

 

 

반응형