다음(Daum)사이트 일별 환율 정보 웹 크롤링 - 주피터
반응형
import requests
import pandas as pd
① 웹 서비스 분석(개발자도구 ): URL
country="JPY"
page=1
perPage=10
url = f"https://finance.daum.net/api/exchanges/FRX.KRW{country}/days?symbolCode=FRX.KRW{country}&terms=days&page={page}&perPage={perPage}"
② request(url,params,headers) > response(json) : JSON(str)
403 에러가 날 경우 user-agent,referer,cookie 확인하기
따라서, 이 때는 user-agent,referer를 넣으면 해결된다.
#headers를 추가안 할 시 오류가 생성됨
headers={
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
"referer":f"https://finance.daum.net/exchanges/FRX.KRW{country}"
}
response = requests.get(url,headers=headers)
response
③ JSON(str) > list, dict > DataFrame
data = response.json()["data"]
df = pd.DataFrame(data)[["date","basePrice"]]
df
④ 함수로 만들기
def exchange(country,page,perPage):
url = f"https://finance.daum.net/api/exchanges/FRX.KRW{country}/days?symbolCode=FRX.KRW{country}&terms=days&page={page}&perPage={perPage}"
headers={
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
"referer":f"https://finance.daum.net/exchanges/FRX.KRW{country}"
}
response = requests.get(url,headers=headers)
data = response.json()["data"]
return pd.DataFrame(data)[["date","basePrice"]]
df = exchange("JPY",1,50)
df
반응형
'kt 에이블스쿨' 카테고리의 다른 글
KT 에이블스쿨 AI트랙 2기 4주차(8.16-8.19) | 15일은 광복절🇰🇷 (0) | 2022.08.23 |
---|---|
kt 에이블 스쿨 AI 트랙 2기 : 3주차(8.8 - 8.12) (0) | 2022.08.16 |
kt 에이블 스쿨 AI 트랙 2기 : 2주차(8.1-8.5) (0) | 2022.08.08 |
주피터 노트북 단축키 (0) | 2022.08.04 |
KT 에이블스쿨 인적성,코딩테스트 후기 - 합격 (4) | 2022.07.07 |