-
Notifications
You must be signed in to change notification settings - Fork 331
S. 黑色商品现货数据
PKUJohnson edited this page Jun 22, 2018
·
1 revision
OpenDataTools通过spot接口,支持黑色商品现货数据的获取,要求版本0.3.7以上。
数据来源:http://www.96369.net/(西本新干线)
需要先安装tesseract-ocr软件,用于验证码的自动识别。
tesseract-ocr项目地址:https://github.com/tesseract-ocr/
安装步骤如下:
- pip install pytesseract
- 安装tesseract-ocr,下载地址3.0.5
- 将tesseract-ocr的安装目录加入到PATH中。
- 下载语言包。下载地址:https://github.com/tesseract-ocr/tessdata,保存在某个目录。(例如d:\tessdata),本项目主要用到了英语识别,需要安装eng开头的语言包。
- 设置TESSDATA_PREFIX环境变量,使其指向语言包所在的目录。(例如d:\tessdata)
严格按照以上步骤,就可以成功安装tesseract-ocr。
from opendatatools import spot
- 获取现货指标
df_indicator = spot.get_commodity_spot_indicator()
df_indicator.head(20)
- 获取现货数据
# 例如:铁矿指数
df, msg = spot.get_commodity_spot_indicator_data('61')
df.head(20)
- 获取现货数据并画图
# 例如:煤炭指数
def draw_indicator(id):
from matplotlib.pylab import mpl
# 指定默认字体
mpl.rcParams['font.sans-serif'] = ['FangSong']
# 解决保存图像是负号'-'显示为方块的问题
mpl.rcParams['axes.unicode_minus'] = False
# 获取现货数据
df, msg = spot.get_commodity_spot_indicator_data(id)
import datetime
df['date'] = df['date'].apply(lambda x : datetime.datetime.strptime(x, '%Y-%m-%d'))
df['value'] = df['value'].apply(lambda x : float(x))
df.set_index('date', inplace=True)
df_indicator = spot.get_commodity_spot_indicator()
df_indicator.set_index('indicator_id', inplace=True)
name = df_indicator.loc[id]['indicator_name']
# 画图
import matplotlib.pyplot as plt
plt.figure(figsize=(16,8))
plt.plot(df.index, df['value'])
plt.title(name)
draw_indicator('1002')