抓取和解析股票历史数据
项目描述
pystock-crawler是一个用于抓取美股历史数据的实用程序,包括:
NASDAQ.com在纽约证券交易所、纳斯达克或美国证券交易所上市的股票代码
雅虎财经的每日价格
来自SEC EDGAR的 10-Q 和 10-K 文件 (XBRL) 的基本原理
示例输出
纽约证券交易所股票代码:
DDD 3D Systems Corporation MMM 3M Company WBAI 500.com Limited ...
苹果每日价格:
symbol,date,open,high,low,close,volume,adj_close AAPL,2014-04-28,572.80,595.75,572.55,594.09,23890900,594.09 AAPL,2014-04-25,564.53,571.99,563.96,571.94,13922800,571.94 AAPL,2014-04-24,568.21,570.00,560.73,567.77,27092600,567.77 ...
谷歌的基本情况:
symbol,end_date,amend,period_focus,fiscal_year,doc_type,revenues,op_income,net_income,eps_basic,eps_diluted,dividend,assets,cur_assets,cur_liab,cash,equity,cash_flow_op,cash_flow_inv,cash_flow_fin GOOG,2009-06-30,False,Q2,2009,10-Q,5522897000.0,1873894000.0,1484545000.0,4.7,4.66,0.0,35158760000.0,23834853000.0,2000962000.0,11911351000.0,31594856000.0,3858684000.0,-635974000.0,46354000.0 GOOG,2009-09-30,False,Q3,2009,10-Q,5944851000.0,2073718000.0,1638975000.0,5.18,5.13,0.0,37702845000.0,26353544000.0,2321774000.0,12087115000.0,33721753000.0,6584667000.0,-3245963000.0,74851000.0 GOOG,2009-12-31,False,FY,2009,10-K,23650563000.0,8312186000.0,6520448000.0,20.62,20.41,0.0,40496778000.0,29166958000.0,2747467000.0,10197588000.0,36004224000.0,9316198000.0,-8019205000.0,233412000.0 ...
安装
先决条件:
蟒蛇 2.7
pystock-crawler基于Scrapy,因此您还需要为 Scrapy 及其依赖项安装lxml和libffi等先决条件。例如,在 Ubuntu 上,您可以像这样安装它们:
sudo apt-get update sudo apt-get install -y gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev build-essential
有关详细信息,请参阅Scrapy 的安装指南。
安装先决条件后,您可以使用 pip安装pystock-crawler:
(sudo) pip install pystock-crawler
快速开始
示例 1.获取按日期排序的 Google 和 Yahoo 的每日价格:
pystock-crawler prices GOOG,YHOO -o out.csv --sort
示例 2.获取./symbols.txt中列出的所有公司的每日价格 :
pystock-crawler prices ./symbols.txt -o out.csv
示例 3.获取 Facebook 在 2013 年的基本面:
pystock-crawler reports FB -o out.csv -s 20130101 -e 20131231
示例 4.在./nyse.txt中获取所有公司的基本信息并将日志定向到./crawling.log:
pystock-crawler reports ./nyse.txt -o out.csv -l ./crawling.log
示例 5.获取 NYSE、NASDAQ 和 AMEX 中的所有股票代码:
pystock-crawler symbols NYSE,NASDAQ,AMEX -o out.txt
用法
键入pystock-crawler -h查看命令帮助:
Usage:
pystock-crawler symbols <exchanges> (-o OUTPUT) [-l LOGFILE] [-w WORKING_DIR]
[--sort]
pystock-crawler prices <symbols> (-o OUTPUT) [-s YYYYMMDD] [-e YYYYMMDD]
[-l LOGFILE] [-w WORKING_DIR] [--sort]
pystock-crawler reports <symbols> (-o OUTPUT) [-s YYYYMMDD] [-e YYYYMMDD]
[-l LOGFILE] [-w WORKING_DIR]
[-b BATCH_SIZE] [--sort]
pystock-crawler (-h | --help)
pystock-crawler (-v | --version)
Options:
-h --help Show this screen
-o OUTPUT Output file
-s YYYYMMDD Start date [default: ]
-e YYYYMMDD End date [default: ]
-l LOGFILE Log output [default: ]
-w WORKING_DIR Working directory [default: .]
-b BATCH_SIZE Batch size [default: 500]
--sort Sort the result
有三个可用的命令:
pystock-crawler符号抓取股票代码列表
pystock-crawler价格抓取每日价格
pystock-crawler报告抓住了基本面
<exchanges>是一个逗号分隔的字符串,用于指定要包含的证券交易所。Current、NYSE、NASDAQ 和 AMEX 均受支持。
pystock-crawler符号的输出文件可用于pystock-crawler价格和pystock-crawler报告 命令中的<symbols> 参数。
<symbols>可以是用逗号分隔的内联字符串,也可以是逐行列出符号的文本文件。例如,内联字符串可以是AAPL,GOOG,FB之类的。文本文件可能如下所示:
# This line is comment AAPL Put anything you want here GOOG Since the text here is ignored FB
使用-o指定输出文件。对于pystock-crawler symbols 命令,输出格式是一个简单的文本文件。对于 pystock-crawler价格和pystock-crawler报告,输出格式为 CSV。
-l是爬取日志所在的位置。如果未指定,日志将转到标准输出。
默认情况下,爬虫使用当前目录作为工作目录。如果您不想使用当前目录,可以使用-w 选项指定它。爬虫将 HTTP 缓存保存在工作目录下名为.scrapy的目录中。缓存可以通过避免下载相同的网页来节省您的时间。但是,缓存可能非常大。如果您不需要它,只需在完成爬网后删除.scrapy目录即可。
-b选项仅适用于pystock-crawler报告命令。它允许您将大型符号列表拆分为较小的批次。这实际上是未解决的错误 (#2) 的解决方法。通常您不必指定此选项。默认值(500)工作得很好。
默认情况下,输出文件中的行是任意顺序的。使用 --sort选项按符号和日期对它们进行排序。但是如果你有一个大的输出文件,不要使用--sort,因为它会很慢并且会消耗很多内存。
开发者指南
安装依赖
pip install -r requirements.txt
运行测试
安装测试要求:
pip install -r requirements-test.txt
然后运行测试:
py.test
这将从 SEC EDGAR即时下载测试数据(大量 XML/XBRL 文件),因此需要一些时间和磁盘空间。测试数据保存到pystock_crawler/tests/sample_data目录。下次运行测试时可以重复使用它。如果您不需要它们,只需删除sample_data目录即可。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
pystock_crawler -0.8.2-py2-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7692419d04665b033a011dc001d555f98270e21c10877a7f5152d85a5385f1dd |
|
| MD5 | efefd670323bc63cc54e7923401db8b4 |
|
| 布莱克2-256 | 9a75e96af5ce37ee9f6c35c76547b0ce5e3f99c0922433151e279d63dd64fe54 |