본문 바로가기
일상/웹 크롤링 연습

네이버 증권에서 상한가 크롤링하기 (1탄)

by 배당금 2024. 6. 30.
반응형

안녕하세요 오늘은 네이버 증권에서

상한가를 크롤링해보려고 합니다.

 

상한가와 코스피, 코스닥 3개이며 체크와 적용하기를 통해 리스트를 변경할 수 있습니다.

저는 여기서 PER(배),고가, 저가를 체크 해제하고 진행해보겠습니다.

 

우선 해당되는 체크박스 3개와 적용하기의 full xpath를 긁어옵니다.

#PER(배)
/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/form/div/div/table/tbody/tr[1]/td[6]/input
#고가
/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/form/div/div/table/tbody/tr[3]/td[1]/input
#저가
/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/form/div/div/table/tbody/tr[4]/td[1]/input
#적용하기
/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/form/div/div/div/a[1]/img

크롬에서 체크박스에 오른쪽 클릭 후 검사를 누르시면 옆에 창이 하나 뜨는데,

새로 뜬 창에서 표시되는 부분에 오른쪽 클릭 후 COPY에서 copy full xpath를 누르시면 됩니다.

 

도구 가져오기

우선은 셀레리움에서 웹 드라이버와, 드라이버에서 옵션을 추가로 가져옵니다.

또한 딜레이를 위해 타임도 같이 가져옵니다.

#셀레니움에서 왭 드라이버사용하기
from selenium import webdriver
#문서(HTML) 내 요소를 찾기 위해 import
from selenium.webdriver.common.by import By
#딜레이를 위한 time
import time

 

웹 실행하기

 

크롬을 실행하고 링크는 우선 임의로 upper_url에 넣어줍니다.

또한 2초간 대기시킵니다.

time.sleep(float 초)입니다 0.1초도 가능하며, 입력 시간만큼 프로그램이 멈춥니다.

 

이때 import random을 같이 사용하는 경우도 많습니다.

time.sleep(random.uniform(0.1,5))

위처럼 입력하면 동일하게 float 데이터를 입력받기에 0.1~5초 사이의 랜덤값을 넣어주게 됩니다.  

#upper_url에 링크를 넣어주고
upper_url = "https://finance.naver.com/sise/sise_upper.naver"
#위 두 조건으로 실행
wd.get(upper_url)
#실행 후 2초 딜레이
time.sleep(2)

 

그 후 모든 문서를 합치면

 

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

wd = webdriver.Chrome()
upper_url = "https://finance.naver.com/sise/sise_upper.naver"
wd.get(upper_url)
time.sleep(2)

버튼 클릭 문구를 넣어야 하는데 너무 길어서 고민이 됩니다.

 

반응형
wd.find_element(By.XPATH, '/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/form/div/div/table/tbody/tr[1]/td[6]/input').click()
time.sleep(0.5)

위 문장은 한 줄입니다.

#1
wd.find_element(By.XPATH,' 위에서 copy 한 xpath').click()
#2
btn = wd.find_element(By.XPATH,' 위에서 copy 한  xpath').click()
btn.click()

하면 됩니다.

 

창이 아마 선택 후 바로 꺼지게 될 텐데..

밑에 time.sleep을 하게 되면 좀 길게 보실 수 있습니다.

 

다음엔 리스트를 긁어 오는 것과 엑셀로 저장하는 것을 해 보겠습니다.

반응형

'일상 > 웹 크롤링 연습' 카테고리의 다른 글

네이버 증권에서 상한가 크롤링하기 (2탄)  (0) 2024.07.02
크롤링 연습  (0) 2024.06.29