一个轻量级的工具,从雅虎财经抓取股票数据。

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]

符号列表

包含要爬网的符号的列表。该符号必须存在于雅虎财经或它会打印一些消息通知你(不会引发异常)。

并发

一个整数。程序将一次启动以对数据进行爬网的进程数。每个进程检索一个库存。

自动保存

truefalse。如果设置为true,则爬网后股票数据将立即保存。

自动睡眠

nonetrue或任何正整数。此参数决定在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(不工作)或全局代理(也可能不工作),等等。

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

推荐PyPI第三方库


热门话题
如何在Java中创建固定大小的泛型数组?   javascript Paypal Braintree订阅付款   使用BufferedReader和PrintWriter实现java数据持久化?   类似于iCloud的java唯一google id   java使用网格布局和抓取组合框   java我的while循环无限运行,当我检查它时,它说while循环没有主体,而我认为它显然没有主体   java LWJGL碰撞3D OpenGL   java将Tibco RV切换到WebSphere MQ?   java如何使用Postman从curl发布REST   java是超级的,在通用通配符中是独占的吗?   在swing 1.5中,java在指定时间后自动关闭非模态对话框   java PrimeFaces饼图在JSF 2.0中不显示   java如何在Spring MVC中提供带有xml配置的默认bean实现?   java在eclipse中使用按钮关闭JFrame   java Sqoop jar已弃用   Java中的Getter方法