一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据
本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自己主动依据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期、股票名称、实时报价、当日变化率、当日最低价、当日最高价。
因为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通过“任务计划程序”实现定时自动下载或更新运行 PM2.5 数据抓取程序数据
在 Windows 任务计划程序中,设置每隔 30 分钟自动抓取 PM2.5 数据,井保存 在 SQLite 数据库中 . import sqlite3,ast,requests,os from bs ...
- 设置python 命令行交互程序自己主动补齐
1. 新建Python环境变量配置文件: vim ~/.pystartup # Add auto-completion and a stored history file of commands to ...
- NetAnalyzer笔记 之 三. 用C++做一个抓包程序
[创建时间:2015-08-27 22:15:17] NetAnalyzer下载地址 经过前两篇的瞎扯,你是不是已经厌倦了呢,那么这篇让我们来点有意思的吧,什么,用C#.不,这篇我们先来C++的 Wi ...
- c# 获取网页的爬虫程序
转载于:https://www.cnblogs.com/wzk153/p/9145684.html HtmlAgilityPack相关详解: https://www.cnblogs.com/asxin ...
- python 网页抓取并保存图片
#-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...
- python爬虫成长之路(一):抓取证券之星的股票数据
获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- Python网页解析库:用requests-html爬取网页
Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...
- 基于python编写的天气抓取程序
以前一直使用中国天气网的天气预报组件都挺好,可是自从他们升级组件后数据加载变得非常不稳定,因为JS的阻塞常常导致网站打开速度很慢.为了解决这个问题决定现学现用python编写一个抓取程序,每天定时抓取 ...
随机推荐
- delphi删除只读文件
只读文件就是不能删除的文件,用DeleteFile函数对它来说是毫无意义的,要删除只读文件,只有先改变它的属性.如果你要删除一个文件,最好先作两个方面的考虑: (1)判断该文件的属性.可以用上面提到的 ...
- 【ASP.NET Web API教程】2 创建各种Web API
原文 [ASP.NET Web API教程]2 创建各种Web API Chapter 2: Creating Web APIs第2章 创建各种Web API 本文引自:http://www.asp. ...
- tomcat7 启动报错(转)
不加载任何自己的项目启动即报错: 严重: Error deploying web application directory D:\tomcat7.0.30\webapps\docs java.l ...
- BAPI总的数据库提交和回滚
BAPI事物中的数据提交和回滚必须通过调用SAP标准业务对象BAPI SERVICE(对象类型SAP0001)的BAPI方法bapiservic.transactioncommit和bapiservi ...
- NET Platform Standard
NET Platform Standard 相关博文:ASP.NET 5 Target framework dnx451 and dnxcore50 .NET Platform Standard:ht ...
- Qt调用Delphi编写的COM组件
这个问题捣鼓了两天,现在终于解决了,做个笔记分享给大家,以免走弯路 起初,我的想法是在DLL中写一个interface并从函数中导出这个interface,像这样的代码 ICom1 = interfa ...
- 将Ojective-C代码移植转换为Swift代码
相比于Objective-C,Swift语言更加简练.有时我们需要把原来写的一些Objective-C代码转换成Swift,下面总结了各种常见的情况. 1,构造函数的迁移 Objective-C为: ...
- ThinkPhp学习13
原文:ThinkPhp学习13 简单登录验证 创建Login类 <?php class LoginAction extends Action { function index(){ $this- ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
- Linux内核驱动开发之KGDB原理介绍及kgdboe方式配置
接博文<Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)>.上篇博文中,仅简单介绍使用串口的Kgbd的流程(kgdboc方式),本文将重点介绍KGDB调试Linux内核的原 ...