天天看點

Python爬蟲實戰,openpyxl子產品,監控比特币價格走勢

前言

随着比特币價格的攀升,群衆熱情也不斷高漲。都想躍躍欲試投資比特币,但是比特币交易你們了解多少呢?

今天給大家分享利用Python監控并儲存比特币價格資訊。

開發工具

** Python版本:**3.6.4

** 相關子產品:**

requests子產品;

matplotlib子產品;

openpyxl子產品;

numpy子產品;

以及一些Python自帶的子產品。

環境搭建

安裝Python并添加到環境變量,pip安裝需要的相關子產品即可。

主要思路

随便Google了一個接口,每次請求接口後把比特币的價格資訊提取出來就好了。

流程就是每隔一段時間通過請求Google到的接口來擷取一次比特币價格資訊,每擷取一定量的資訊就儲存到Excel中。

就是這麼簡單。

具體實作過程詳見個人首頁 相關檔案中的源代碼。

部分代碼

import requests
import json
import time
import matplotlib
import matplotlib.pyplot as plt
import openpyxl
import numpy as np
import datetime
is_ipython = 'inline' in matplotlib.get_backend()
if is_ipython:
	from IPython import display


# 擷取價格
def GetPrice():
	headers = {
			'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'
			}
	url = "https://api.coinmarketcap.com/v1/ticker/bitcoin"
	res = requests.get(url, headers=headers)
	temp = json.loads(res.text)
	try:
		price = temp[0]['price_usd']
		return price
	except:
		print('[Warning]:No data now...')
		return None


# 畫圖
def Draw(prices):
	plt.figure(2)
	plt.clf()
	plt.title('BitCoin')
	plt.xlabel('Time')
	plt.ylabel('Price($)')
	plt.plot(np.array(prices))
	plt.pause(0.001)
	if is_ipython:
		display.clear_output(wait=True)
		display.display(plt.clf())


# 儲存資料
def Save(data):
	save_time = time.strftime("<%Y-%m-%d>%H-%M-%S", time.localtime())
	print('[Time]: %s' % save_time)
	print('[INFO]: Start to save data...')
	wb = openpyxl.load_workbook('./data.xlsx')
	ws = wb.create_sheet(title=save_time)
	ws.append(['Time', 'Price'])
	for d in data:
		ws.append(d)
	wb.save('./data.xlsx')
	wb.close()
	finished_time = time.strftime("<%Y-%m-%d>%H-%M-%S", time.localtime())
	print('[Time]: %s' % finished_time)
	print('[INFO]: Data saved successfully...')

           

使用示範

根據需要修改源代碼中的參數(bitcoin.py):

然後在cmd視窗運作bitcoin.py檔案即可。

文章到這裡就結束了,喜歡的朋友可以點波關注我每天分享Python資料爬蟲案例系列,下篇文章分享是地理資訊可視化