반응형
다음증권을 통한 데이터 수집
다음증권에서 업종별로 현재가 및 등락률 거래량, 외국인 지분율 등 시세를 제공하는데, 파이썬을 이용해서 전체 종목에 대한 시세 데이터를 스크래핑 할 수 있다.
파이썬 스크래핑 코드
아래는 파이썬의 requests 라이브러리와 pandas 라이브러리를 통해서 전체 업종 시세 데이터를 스크래핑 한뒤 CSV 파일로 저장하는 코드이다.
여기서 주의할 점은 업종별로 스크래핑 하다보니, 중복되는 종목이 일부 존재하는데, 이를 반드시 제거해주어야 한다.
(아래 코드에 포함)
import requests
import pandas as pd
headers = {
"Host": "finance.daum.net",
"Connection": "keep-alive",
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36",
"Referer": "http://finance.daum.net/domestic/all_quotes",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
}
def get_symbol_name(market="KOSPI") :
url = "http://finance.daum.net/api/quotes/sectors?fieldName=&order=&perPage=&market={}&page=&changes=UPPER_LIMIT%2CRISE%2CEVEN%2CFALL%2CLOWER_LIMIT".format(market)
r = requests.get(url, headers=headers)
results = []
for category in r.json()['data'] :
stocks = category['includedStocks']
results += stocks
return results
if __name__ == '__main__':
markets = ["KOSPI", "KOSDAQ"]
codes = []
for market in markets :
codes += get_symbol_name(market=market)
res_list = []
for i in range(len(codes)):
if codes[i] not in codes[i + 1:]:
res_list.append(codes[i])
codes = res_list
df = pd.DataFrame(codes)
df.to_csv('market_{:%Y%m%d}.csv'.format(datetime.now()), encoding="euc-kr", index=False)
스크래핑 결과
날짜 이름으로 각각 데이터가 저장되게 된다.
csv 파일 내용
반응형
'코딩 > 파이썬(Python)' 카테고리의 다른 글
[파이썬] 파이썬, 머신러닝으로 네이버페이 키패드 인식 후 입력하기 (21) | 2020.09.03 |
---|---|
[서버] Centos6에 python3.6, OpenCV 설치하기 (0) | 2020.08.20 |
[파이썬] 머신러닝으로 캡챠(captcha) 뚫기 2편 (위메프 파트너) (9) | 2020.08.17 |
[파이썬] 국회 의안정보시스템 스크래핑 (1) | 2020.07.04 |
[파이썬] 머신러닝으로 민원24, 대법원 캡챠(Captcha) 뚫기 (32) | 2019.10.16 |