一个轻量级的工具,从雅虎财经抓取股票数据。
rookie-stock-crawler的Python项目详细描述
PY股票爬虫
一个多线程的网络爬虫,从雅虎财经检索股票数据。
用法
非常容易安装!!!不需要额外的c或二进制libs!!!
仅支持Python3。
pip install rookie-stock-crawler
使用四行创建多线程爬虫程序,并将数据作为json文件保存到本地。
fromrookie_stock_crawlerimportStockCrawlersc=StockCrawler(['MSFT','GOOG','AMZN','AAPL'])sc.start()sc.save_all()
爬网程序对象是可访问的:
foriteminsc:print(item.get())
设置
类stockcrawler(符号列表,并发=5,自动保存=false,自动睡眠=none)[Source]
符号列表
包含要爬网的符号的列表。该符号必须存在于雅虎财经或它会打印一些消息通知你(不会引发异常)。
并发
一个整数。程序将一次启动以对数据进行爬网的进程数。每个进程检索一个库存。
自动保存
true或false。如果设置为true,则爬网后股票数据将立即保存。
自动睡眠
none,true或任何正整数。此参数决定在Yahoo开始返回404响应(这意味着您的客户端已达到其访问限制)之后,爬虫程序将休眠多少秒。
如果设置为true,默认情况下它将睡眠600秒。
实用程序
整个包装设计成可拆卸的。所有方法和对象都可以独立导入和使用。
类库存[Source]
存储在爬虫程序中的主对象。上面代码中的变量item是一个stock对象。这意味着您可以直接访问其属性或使用其他方法。
fromrookie_stock_crawler.stockimportStockst=Stock('AAPL')st.retrieve()st.save()print(st.get())
这是一个创建没有多线程的单个小型爬虫程序的示例。
新手股票爬虫程序.实用程序[Source]
当我们继续分解模块时,我们可以导入用于检索数据的stock方法。它们工作起来几乎像一个纯功能(只要你的家庭路由器没有爆炸)。
fromrookie_stock_crawler.utilsimportget_financial,get_statistic,get_historicalsymbol='AAPL'print(get_financial(symbol))print(get_statistic(symbol))print(get_historical(symbol))
所有方法都返回一个长度为2的元组。第一个元素是股票数据(列表或dict),第二个元素是数据的最新日期(例如,苹果公司的最新财务报告于2018年9月29日发布)。
例外情况
此包不提供任何自定义例外。但是,在爬网过程中引发的所有异常都会被捕获并用前缀标记打印,如“[error]”。这不是为了中断爬网,在这种情况下,如果不将auto_save选项设置为true,所有数据都将丢失。
在爬网之外引发的所有异常仍将中断程序。
数据格式
几乎是来自Yahoo Finance的原始JSON数据(从网页源代码中解析)。
要查看示例,请单击here。
数据格式转换工具将在以后的版本中引入。
特殊说明
雅虎财务不再维护其api或yql查询。因此,我们无法知道接收频率的确切极限。爬虫程序实际上是通过直接向服务器发送请求来获取数据的,这与打开浏览器并访问雅虎网站完全相同。
换句话说,你不能在短时间内抓取大量数据。对于个人开发者和爬虫爱好者来说已经足够了。但是如果你想更快,这个包还提供了一个分布式版本,可以在不同的服务器上运行。整个解决方案包括一个django服务器和一个前端。
如果您感兴趣,您可以访问我的其他RePOS,或者您可以尝试其他方法,如伪造的UpAgent(不工作)或全局代理(也可能不工作),等等。