一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据
2014-10-09 10:51
627 查看
本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自己主动依据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期、股票名称、实时报价、当日变化率、当日最低价、当日最高价。
因为Yahoo Finance的股票页面中的数值都有对应id。
比如纳斯达克100指数ETF(QQQ)http://finance.yahoo.com/q?s=qqq
当中实时报价的HTML标记为
而标普500指数ETF(SPY)http://finance.yahoo.com/q?s=spy
当中实时报价的HTML标记为
因此本数据抓取程序依据对应的id字符串来查找数据。详细来说就是先继承HTMLParser,然后在自己定义的子类中重载handle_data(self, data)方法,查找包括对应id字符串(比如实时报价的id字符串为"yfs_l84_"+股票代码)的HTML标记,并输出这个HTML标记中的数据(比如qqq的<span id="yfs_l84_qqq">87.49</span>,当中的数据87.49就是实时报价。)
样本输出:
数据依次是
数据日期 股票代码
股票名称 实时报价
日变化率 日最低价
日最高价
本程序源码:
https://bitbucket.org/lsz/html-parser
HTMLParser的官方说明文档:
https://docs.python.org/2/library/htmlparser.html
HTMLParser(解析HTML文档元素)
http://blog.csdn.net/hxsstar/article/details/17241709
因为Yahoo Finance的股票页面中的数值都有对应id。
比如纳斯达克100指数ETF(QQQ)http://finance.yahoo.com/q?s=qqq
当中实时报价的HTML标记为
<span id="yfs_l84_qqq">87.49</span>
而标普500指数ETF(SPY)http://finance.yahoo.com/q?s=spy
当中实时报价的HTML标记为
<span id="yfs_l84_spy">187.25</span>
因此本数据抓取程序依据对应的id字符串来查找数据。详细来说就是先继承HTMLParser,然后在自己定义的子类中重载handle_data(self, data)方法,查找包括对应id字符串(比如实时报价的id字符串为"yfs_l84_"+股票代码)的HTML标记,并输出这个HTML标记中的数据(比如qqq的<span id="yfs_l84_qqq">87.49</span>,当中的数据87.49就是实时报价。)
样本输出:
数据依次是
数据日期 股票代码
股票名称 实时报价
日变化率 日最低价
日最高价
05/05/2014 ibb iShares Nasdaq Biotechnology (IBB) 233.28 1.85% 225.34 233.28 05/05/2014 socl Global X Social Media Index ETF (SOCL) 17.48 0.17% 17.12 17.53 05/05/2014 pnqi PowerShares NASDAQ Internet (PNQI) 62.61 0.35% 61.46 62.74 05/05/2014 xsd SPDR S&P Semiconductor ETF (XSD) 67.15 0.12% 66.20 67.41 05/05/2014 ita iShares US Aerospace & Defense (ITA) 110.34 1.15% 108.62 110.56 05/05/2014 iai iShares US Broker-Dealers (IAI) 37.42 -0.21% 36.86 37.42 05/05/2014 vbk Vanguard Small Cap Growth ETF (VBK) 119.97 -0.03% 118.37 120.09 05/05/2014 qqq PowerShares QQQ (QQQ) 87.95 0.53% 86.76 87.97 05/05/2014 ewi iShares MSCI Italy Capped (EWI) 17.86 -0.56% 17.65 17.89 05/05/2014 dfe WisdomTree Europe SmallCap Dividend (DFE) 62.33 -0.11% 61.94 62.39 05/05/2014 pbd PowerShares Global Clean Energy (PBD) 13.03 0.00% 12.97 13.05 05/05/2014 eirl iShares MSCI Ireland Capped (EIRL) 38.52 -0.16% 38.39 38.60
本程序源码:
https://bitbucket.org/lsz/html-parser
HTMLParser的官方说明文档:
https://docs.python.org/2/library/htmlparser.html
HTMLParser(解析HTML文档元素)
http://blog.csdn.net/hxsstar/article/details/17241709
相关文章推荐
- 一个极其简洁的Python网页抓取程序,自动从雅虎财经抓取股票数据
- 一个简单的使用python抓取网页中的水文数据的程序
- 自己写的一个爬蚂蜂窝的景点数据的Python程序,Mark一下
- 用程序来控制一个网页,实现自己主动输入等操作
- 参照《鲜活的数据:数据可视化指南》第2章:抓取网页数据(历史天气记录)的Python程序
- 用Python程序抓取网页的HTML信息的一个小实例
- Python实现一个简易的网页抓取程序
- 用Python程序抓取网页的HTML信息的一个小实例
- 用python模拟一个文本浏览器来抓取网页
- python学习--抓取一个网页上图片
- 转一个python写的多线程 代理服务器 抓取,保存,验证程序
- 跟ArthurXF学从雅虎抓取股票数据的方法
- 自己写的一个抓取页面email地址的小程序
- 一个简单的基于java的网页抓取程序
- 学习数据结构搜索的的意外收获哈。一个简单的基于java的网页抓取程序。
- 用python进行分布式网页数据抓取(二)—— 核心问题讨论
- [程序]自己做了一个测试数据生成器 可以下载
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- 用python进行分布式网页数据抓取(三)—— 编码实现
- 转发一个PHP抓取网页快照程序