728x90
오랜만에 해보니 셀레늄 문법이 일부 바뀜
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager #현재 설치된 크롬 사용
from selenium.webdriver.common.by import By
import pandas as pd
chrome_service = Service(ChromeDriverManager().install())
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless') #브라우저가 백그라운드로 실행
driver = webdriver.Chrome(service=chrome_service,options=chrome_options)
driver.get('https://~~')
driver.find_element(By.NAME, 'stime').clear()
driver.find_element(By.NAME, 'stime').send_keys('20210101')
driver.find_element(By.NAME, 'stime').submit()
html=driver.page_source
df = pd.read_html(html)[1] #숫자값으로 테이블 순서 선택
df = df[['국내', '글로벌']] #열 선택 https://wikidocs.net/151189
df = df.rename(columns = {
'국내':'kor', '글로벌':'global'
}) #열 이름 변경
print(df)
chart = df.plot.line() #차트 종류는 선
chart.figure.savefig('chart.png')
driver.close()
차트를 더 정교하게 바꾸려면
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
df['date'] = df['date'].astype(str) #x값이 깨지면 형 변환
df['date'] = df['date'].str.slice(start=4) # x값 문구 길이 조정
plt.figure(figsize=(7,4)) #크기 비율
plt.title('hello',fontsize=20) # 타이틀 설정
plt.plot(df['date'],df['kor'],label='kor') #x,y 값으로 사용할 df 열 선택
plt.plot(df['date'],df['global'],label='global')
plt.xticks(rotation=45) #x값 겹치지 않게 회전
plt.legend() #범례 : plot의 라벨값 가져오기
ax = plt.gca() #현재 차트 정보 가져오기
ax.xaxis.set_major_locator(plt.MultipleLocator(20)) #눈금 간격
plt.show()
추세선 추가하기 (30 이평선인 경우)
plt.plot(df['date'], df.rolling(window=30).mean()['kor'])
728x90
'Python' 카테고리의 다른 글
[python] 컨플루언스에 파일 첨부하기 (0) | 2022.02.08 |
---|---|
파이썬 번역 - googletrans (0) | 2022.01.20 |
파이썬 셀레늄 웹드라이버 자동 관리하기 (0) | 2021.08.26 |
파이썬 tkinter - 테이블 항목 선택시 값 가져오기 (0) | 2020.10.30 |
단어 클라우드 만들기 - 설치 (0) | 2020.10.28 |