import time #time 명령어 사용하기
from selenium import webdriver #셀레니움 사용하기
from selenium.webdriver.common.keys import Keys #키보드 입력하기 위한 설정
# 크롬 웹드라이버를 이용하여 크롬을 실행
driver = webdriver.Chrome("C:\chromedriver.exe")
driver.get("https://finance.naver.com/item/main.nhn?code=006980") #네이브로 이동
time.sleep(1)
# html elemnt id가 stock_items 인 것을 찾습니다.
inputElement = driver.find_element_by_id("stock_items")
#time.sleep(1)
#종목 검색창에 문배철강을 입력
inputElement.send_keys("문배철강")
#time.sleep(1)
# 입력한 문배철강 검색내용을 서버로 보냄
inputElement.submit()
time.sleep(1)
#body에 PAGE_DOWN 키를 입력하여 스크롤을 아래로 내린다.
body = driver.find_element_by_css_selector("body")
body.send_keys(Keys.PAGE_DOWN)
time.sleep(1)
# 검색된 리스트 중 링크 텍스트에 "종목분석"이 포함된 것을 찾음
continue_link = driver.find_element_by_partial_link_text("종목분석")
#time.sleep(1)
#'종목분석' 해당 링크를 클릭함
continue_link.click()
time.sleep(1)
#파이썬 requests 모듈은 간편한 HTTP 요청처리를 위해 사용하는 모듈로 별도로 설치해 주어야 한다.
import requests #pip3 install requests
from bs4 import BeautifulSoup #뷰티풀솝을 사용하기
#driver = webdriver.Chrome() => 크롬드라이버 실행준비
#print (driver.current_url) => 크롬창의 url 불러오기
html = requests.get(driver.current_url)
bs_html = BeautifulSoup(html.content,"html.parser")
driver.quit()
#bs의 select 사용법
#soup.select('태그')
#soup.select('.클래스명') 혹은 ('태그.클래스명')
#soup.select('#아이디명') 혹은 ('태그#아이디명')
#soup.select('태그 > 자식태그')
#soup.select('태그 자손태그')
# id가 headline0인 태그의 자손 중 li 크롤링
#title = soup.select('#headline0 li')
#현재가
today_value = bs_html.select("span.blind")[12]
print(today_value.text)
#시가총액
#total_value = bs_html.find('em', id="_market_sum").string
total_value = bs_html.find("em", { "id" : "_market_sum" }).get_text(" ", strip=True)
print(total_value)
#PER
per_value = bs_html.find("em", {"id" : "_per"}).get_text(" ", strip=True)
print(per_value)
#PBR
pbr_value = bs_html.find("em", { "id" : "_pbr" }).get_text(" ", strip=True)
print(pbr_value)
#EPS
#eps_value = bs_html.select("em")[70]
eps_value = bs_html.find("em", { "id" : "_eps" }).get_text(" ", strip=True)
print(eps_value)
#BPS
#bps_value = bs_html.select("table[5].per_table tr[2] td em[1]")
bps_table_value = bs_html.find_all("table", {"class" : "per_table"})
#bps_value = bps_table_value.find_all("tr")
bps_table_value = bps_table_value.select("")
print(bps_table_value)
#배당수익률
dvr_value = bs_html.find("em", { "id" : "_dvr" }).get_text(" ", strip=True)
print(dvr_value)