import requests, json
import pandas as pd
: 브라우저의 URL을 입력 > 데이터를 다운받음 > 출력
1. F12 단축키 or 개발자 도구로 진입(ctrl+shift+I)
2. 모바일 화면으로 바꾸고(보기 편하려고. 굳이 안해도 됨)
3. clean
4. 더보기를 누르면서, 새로 생성되는 header의 Request URL을 복사하기
# 삼성전자 주식 투자자별 매매동향
url = "https://m.stock.naver.com/api/stock/005930/trend?pageSize=10&bizdate=20220728"
: 이때 get을 하지 않으면 최신 데이터를 가져올 수 없음
response = requests.get(url) # <Response [200]> 뜨면 정상적인거임
data = response.json() # 현재 list 안에 dict로 되어있음
pd.DataFrame(data)
def samsung_stock_price(pagesize, bizdate):
"""This fucntion is crawing stock price from naver webpage
Params
------
pagesize : int : one page size
bizdate : int : return before 10 days
Return
------
type : DataFrame : display, date, price, trading volume columns
"""
# f-string을 써야함! 안그러면 오류남
url = f"https://m.stock.naver.com/api/stock/005930/trend?pageSize={pagesize}&bizdate={bizdate}"
response = requests.get(url)
data = response.json()
return pd.DataFrame(data)[['bizdate', 'closePrice', 'accumulatedTradingVolume']]
samsung = samsung_stock_price(10, 20220728)
help(함수명)
: 함수안에 dostring을 보여줌# 원본 보존을 위해 복사
df = samsung.copy()
# samsung 데이터프레임에 naver의 price를 추가
df["Naver"] = naver['closePrice']
df = df.rename(columns = {'closePrice': 'Samsung'})
# ','를 없애고, float형으로 바꿔줌
df['Samsung'] = df['Samsung'].apply(lambda data: float(data.replace(',', '')))
df['Naver'] = df['Naver'].apply(lambda data: float(data.replace(',', '')))
# 상관분석
df[['Samsung', 'Naver']].corr()
# 출력
Samsung Naver
Samsung 1.00000 0.77088
Naver 0.77088 1.00000
df['column'].apply()
: 모든 데이터를 함수에 대입한 결과를 출력covid["title_en"] = covid_en
covid.to_excel("covid_en.xlsx", index = False, encoding = "utf-8-sig")