Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- #알고리즘
- 개발자와 비즈니스 관계
- sed명령어
- MySQL
- 업비트 웹소켓
- django slack bot
- 개발자에세이
- private.pem
- 정렬
- django #django 5.0 #django 5.0 요약
- 슬랙봇
- django 슬랙봇
- 비즈니스
- innodb_buffer_pool_size 오류
- 숲을 바라보는 개발자
- 개발자와 비즈니스
- 알고리즘
- django slack
- slack bot
- ssl.key
- #백준 #드래곤커브 #알고리즘
- 비즈니스적 관점에서 생각하는 개발자
- 데이터베이스 오류
- add colume
- AWS Aurora
- 웹소켓 api
- 개발자의 마인드
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- public.pem
- #데이터베이스 #트랜잭션 #ACID #격리수준
Archives
- Today
- Total
Info-Tech
Coingecko [코인 거래 사이트]의 정보를 간단한 크롤링 해보기 본문
Coingecko에서는 현존하는 거래소들의 가격, 볼륨, 토큰의 정보를 한눈에 알 수 있도록 제공해주는 API가 있습니다.
다양한 API가 있으며, 이번 포스팅에서는 /exchanges/{id} 라는 거래소에 해당하는 모든 market과 coin의 정보들을 가져와보도록 하는 작업을 할 것 입니다.
예를 들어, 빗썸(bithumb)에 어떤 코인과 마켓이 거래가 일어 나고 있는지 확인하고 싶으면
이런식으로 요청을 할 수 있습니다.
결과 값으로는,
{
"name": "Bithumb",
"has_trading_incentive": false,
"trade_volume_24h_btc": 217881.65902249143,
"tickers": [
{
"base": "BTC",
"target": "KRW",
"market": {
"name": "Bithumb",
"identifier": "bithumb",
"has_trading_incentive": false
},
"last": 7270000,
"converted_last": {
"btc": "0.983055238951832548349467409",
"eth": "31.5819495041140037281319060604920107614038",
"usd": "6368.25508058864637558434178378618980786695"
},
"volume": 77189.10461253,
"converted_volume": {
"btc": "75881.15367934867908029805901841080803477",
"eth": "2437782.404140695791382112126214184529064288455877869614",
"usd": "491559907.6148326908171663831568945916657368647255428835"
},
"timestamp": "2018-10-26T08:24:53+00:00",
"is_anomaly": false,
"is_stale": false
},
{
"base": "XMR",
"target": "KRW",
"market": {
"name": "Bithumb",
"identifier": "bithumb",
"has_trading_incentive": false
},
"last": 118100,
"converted_last": {
"btc": "0.015969576852848889127932889",
"eth": "0.5130437739251532104941372999817571563398",
"usd": "103.45129642606865707792445361715966212095"
},
"volume": 3208923.4780022483,
"converted_volume": {
"btc": "51245.150096868054375401675404400917232781356",
"eth": "1646318.2113913017789664267884154352721276689521903117637192",
"usd": "331967293.9313817845557129279815428815227836434851189682738"
},
"timestamp": "2018-10-26T08:24:53+00:00",
"is_anomaly": false,
"is_stale": false
},
— 이런식으로 받아 올 수 있습니다.
먼저 http 관련 라이브러리를 설치하도록 하겠습니다.
pip install httplib2
import http.client
import json
# API호출되는 기본적인 도메인 주소를 정해줍니다.
# 헤더를 정해줘야 합니다.
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
}
#해당 주소가 https로 시작함으로, 클라이언트를 HTTPSConnection로 연결 해 줍니다.
conn = http.client.HTTPSConnection(base_url)
# i값은 아직 지정해주지 않았습니다. 자신이 원하는 정보를 선택할 거래소를 넣어주면 됩니다
#이번에는 bithumb을 넣어주도록 하겠습니다.
i = ‘bithumb'
conn.request('GET', '/api/v3/exchanges/{0}'.format(i), headers=headers)
res = conn.getresponse()
#결과값이 dict형태로 되어있음으로 가공하기 쉽게 json으로 받아옵니다.
contents = json.loads(res.read().decode('utf-8’))
##이중에서 저는 현재 모든 코인에 대해서 현재가격과, 거래대금을 가져와보도록 하겠습니다.
##coingecko에서는 현재가격을 last, 거래대금은 volume으로 값을 내려주고 있습니다.
##이 값들은 tickers에 리스트 형태로 저장되어 있습니다.
for info in contents[‘tickers’]:
## base(코인), 가격, 거래대금 출력
print( info[‘base’], info[‘last’], info[‘volume’])
이외에도 원하는 정보들을 디비에 저장하거나 is_anomaly와 같은 key값을 잘 활용하면 스캠인지 아닌지 확인도 가능할 듯 합니다.
'프로그래밍 > 파이썬 & 장고' 카테고리의 다른 글
upbit websocket api사용방법 (0) | 2019.02.16 |
---|---|
Cron작업을 통해 특정 거래소의 코인 정보들을 실시간으로 확인해보기 (1) | 2018.10.26 |
“SSL: CERTIFICATE_VERIFY_FAILED” 에러 (0) | 2018.10.24 |
Comments