Python金融数据分析教程 解放你的python编程能力 第4关 如何获取金融数据 Python金融数据分析教程 1
课程内容 通过本课程学习,你将学习到 通过tushare获取金融数据 通过quantos获取金融数据 通过爬虫获取金融数据 pandas Dataframe的基础知识 闯关作业 Python金融数据分析教程
通过tushare获取金融数据(1) http://tushare.org/ Tushare是一个免费、开源的python财经数据接口包。 1. 安装Tushare:pip install tushare 安装方法: pip install 库名 Example: pip install bs4 Python金融数据分析教程
通过tushare获取金融数据(2) pandas.DataFrame 2. 使用Tushare # 导入 tushare库 import tushare as ts # 获取历史日行情 df = ts.get_hist_data( '600030', start='2018-01-01', end='2018-01-31' ) pandas.DataFrame Python金融数据分析教程
通过tushare获取金融数据(3) 接口自己慢慢找哦 Python金融数据分析教程
通过quantos获取金融数据(1) 安装quantos https://www.quantos.org/ 1、使用金融终端,已内置安装(推荐!) 2、手动安装:https://github.com/quantOS-org/JAQS/blob/master/doc/install.md Python金融数据分析教程
通过quantos获取金融数据(2) pandas.DataFrame # 导入DataApi from jaqs.data import DataApi # 初始化api api = DataApi('tcp://data.quantos.org:8910') # 获取用户名和密码 import os user = os.environ.get("QUANTOS_USER") token = os.environ.get("QUANTOS_TOKEN") # 登录 info, msg = api.login(user, token) print(info, msg) # 查询日收盘价信息 df, msg = api.daily( symbol='399001.SZ', start_date='2018-02-01', end_date='2018-02-28', fields='open,high,low,close' ) pandas.DataFrame Python金融数据分析教程
通过quantos获取金融数据(3) 目前quantos提供的数据包括: 基础数据,主要是一些基础信息,包括证券信息、行业代码、指数信息、交易日历等。 市场数据,即由市场行情产生的数据,包括实时行情、实时分钟线、历史tick、历史日线、历史分钟线等。 参考数据,包括股票的复权因子、分红、停复牌、行业分类,指数的成份股,公募基金的净值等。 企业财务数据正在整理中 Python金融数据分析教程
通过爬虫获取金融数据(1) 网络爬虫 2、浏览器向服务器发送http请求 1、用户在浏览器提交请求 3、服务器返回数据内容 4、浏览器解析数据并显示 1、模拟浏览器向服务器发送http请求 2、服务器返回数据内容 3、解析数据,提取数据 4、保存到数据库中 网络爬虫 Python金融数据分析教程
通过爬虫获取金融数据(2) 网络爬虫基本步骤 1、模拟发起HTTP请求 2、接收服务器返回的数据 3、解析数据,提取有效内容 4、将内容保存到数据库中 三方库 作用 requests 模拟发起HTTP请求 接收服务器返回的数据 json 解析json数据 bs4 解析HTML数据 如何模拟发起HTTP请求? 1、通过浏览器访问数据站点 2、分析通信包格式和请求参数(Chrome F12) 3、通过爬虫模拟发起请求,如果能正确收到应到,则模拟成功 Python金融数据分析教程
通过爬虫获取金融数据(3) http://www.chinamoney.com.cn/fe-c/optionExchangeRateHistoryAction.do?lang=cn Python金融数据分析教程
通过爬虫获取金融数据(4) URL = http://www.chinamoney.com.cn/dqs/rest/dqs-u-fx/RefRateHis 请求参数: lang=CN&startDateTool=14%20Feb%202018&endDateTool=13%20Mar%202018¤cyCode=USD.CNY lang=CN startDateTool=14 Feb 2018 endDateTool=13 Mar 2018 currencyCode=USD.CNY 请求方法:post / get 返回结果和字符集 Content-Type: application/json;charset=UTF-8 Python金融数据分析教程
通过爬虫获取金融数据(5) import requests # prepare request data URL = "http://www.chinamoney.com.cn/dqs/rest/dqs-u-fx/RefRateHis" data = {'lang' : 'CN', 'startDateTool' : '13 Mar 2018', 'endDateTool' : '13 Mar 2018', 'currencyCode' : 'USD.CNY' } # request header USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) " \ "AppleWebKit/537.36 (KHTML, like Gecko) " \ "Chrome/57.0.2987.133 Safari/537.36 “ # simulate http request session = requests.Session() session.headers['User-Agent'] = USER_AGENT res = session.get(URL, params=data) if res.status_code != 200: print("query_error, status_code = ", res.status_code) # display http response rsp = res.text print(rsp) 模拟浏览器行为 Python金融数据分析教程
通过爬虫获取金融数据(6) 6.3244 import json # 载入数据并记录 rsp_json = json.loads(rsp) raw_records = rsp_json['records'] for record in raw_records: print(record['rateOf11hour']) 解析json,得到数据 6.3244 Python金融数据分析教程
通过爬虫获取金融数据(7) 大部分的网站都是用json来传递数据,但还有些古老的网站,仍然直接传输html,可以用bs4来解析 from bs4 import BeautifulSoup html_doc = """ <html><head><title>The Dormouse's story</title></head> <body> <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; """ soup = BeautifulSoup(html_doc, 'html.parser', from_encoding='utf8') print('测试1:获取所有的链接') links = soup.find_all('a') for link in links: print(link.name, link['href'], link.get_text() ) print('\n测试2:获取Lacie的链接') link_node = soup.find('a', href='http://example.com/lacie') print(link_node.name, link_node['href'], link_node.get_text()) Python金融数据分析教程
pandas DataFrame基础知识 https://mp.weixin.qq.com/s?__biz=MzU5MjMyNTA3MQ==&mid=2247483806&idx=1&sn=1edabf70035bb898fa40862ea796f56c&chksm=fe20313ec957b8284d8e2eedc4a4f5afa647cdd9be8cff83c799dc7454d7905591ce679daae1#rd Python金融数据分析教程
闯关作业 上交所网站提供历史的融资融券余额数据,请用爬虫将2018年每日融资余额数据取出并画一张折线图。 http://www.sse.com.cn/market/othersdata/margin/sum/ 请通过下面的文章,熟悉quantos数据,并逐个接口试用。https://github.com/PKUJohnson/LearnJaqsByExample/blob/master/data_api_tutorial.md Python金融数据分析教程
欢迎访问https://www.quantos.org Python金融数据分析教程