抓取和解析股票历史数据

pystock-crawler的Python项目详细描述


https://badge.fury.io/py/pystock-crawler.pnghttps://travis-ci.org/eliangcs/pystock-crawler.png?branch=masterhttps://coveralls.io/repos/eliangcs/pystock-crawler/badge.png?branch=master

pystock-crawler是一个用于抓取美国股票历史数据的实用程序, 包括:

示例输出

纽约证券交易所股票代码:

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
...

安装

先决条件:

  • python 2.7版

pystock-crawler基于Scrapy,因此您还需要安装 先决条件,例如lxmllibffi对于scrapy及其依赖项。打开 比如ubuntu,你可以这样安装:

sudo apt-get update
sudo apt-get install -y gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev build-essential

有关详细信息,请参见Scrapy’s installation guide

安装先决条件后,可以使用 pip

(sudo) pip install pystock-crawler

快速启动

example 1.获取按日期排序的谷歌和雅虎的每日价格:

pystock-crawler prices GOOG,YHOO -o out.csv --sort

example 2.获取中列出的所有公司的每日价格 ./symbols.txt

pystock-crawler prices ./symbols.txt -o out.csv

example 3.获取2013年Facebook的基本信息:

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

example 5.获取纽约证交所、纳斯达克和美国运通的所有股票代码:

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 symbolsgrabs ticker符号列表
  • pystock-crawler prices获取每日价格
  • pystock-crawler reports抓住基本面

<exchanges>是一个逗号分隔的字符串,指定证券交易所 你想包括在内。目前,纽约证交所、纳斯达克和美国运通都受到支持。

pystock-crawler symbols的输出文件可用于<symbols>pystock-crawler prices和^{tt11}中的参数$ 命令。

<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 pricespystock-crawler reports输出格式 是CSV。

-l是爬网日志的目的地。如果未指定,日志将转到 标准输出。

默认情况下,爬网程序使用当前目录作为工作目录。 如果不想使用当前目录,可以使用^{tt24}指定它$ 选择。爬网程序将http缓存保存在名为.scrapy的目录下 工作目录。缓存可以避免下载 同样的网页。然而,缓存可能相当大。如果你不需要它, 完成爬网后,只需删除.scrapy目录。

-b选项仅对pystock-crawler reports命令可用。IT 允许您将大型符号列表拆分为较小的批处理。这实际上是 未解决的错误的解决方法(2)。通常你不必指定 这个选项。默认值(500)工作正常。

默认情况下,输出文件中的行按任意顺序排列。使用 --sort按符号和日期排序的选项。但是如果你有一个大的 输出文件,不要使用–sort,因为它会很慢,占用大量内存。

开发人员指南

安装依赖项

pip install -r requirements.txt

运行试验

安装测试要求:

pip install -r requirements-test.txt

然后运行测试:

py.test

这将从 SEC EDGAR正在运行,因此需要一些时间和磁盘空间。测试 数据保存到pystock_crawler/tests/sample_data目录。可能是 在下次运行测试时重用。如果你不需要,就删除 sample_data目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从ImageIO中排除特定的TIFF读取器?   JavaJMockit和passbyreference。我们中一定有一个人错了(可能是我!)   java Android camera2放弃了牛轧糖的表面,但在棉花糖上工作   java按字符串中出现的顺序对字符数组进行排序   如何获取Groovy生成的java源代码   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java为什么我的冒泡排序代码会打印出这些奇怪的东西?   java JAXB:typesafeEnumMemberName=“generateName”是否可自定义?   Java编程输入:今天是星期天输出:星期天是今天   java不理解首个OOAD书的吉他示例   java如何从JformattedTextfield检索货币格式值   java可以从相同的源代码生成功能不同的可执行文件吗?