一个极其简洁的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编写一个抓取程序,每天定时抓取 ...
随机推荐
- Appium Server 传递的基本参数
Appium Server 传递的基本参数 官方列表 Appium server capabilities Capability Description Values automationName ...
- 虚拟机安装中文Fedora14和C/C++IDE开发环境
虚拟机安装中文Fedora14和C/C++IDE开发环境 2010-12-05 00:15:58 标签:中文Fedora14 IDE 开发环境 C/C++ 原创作品,允许转载,转载时请务必以超链接形式 ...
- C++,Python,Go对照学习-02
main函数 Go中有且只有一个main函数,而且main函数必须在package main当中.main函数无返回值也无参数,如果希望获取从命令行传递的参数有其他包解决这个问题. ...
- 积累的VC编程小技巧之图标、光标及位图
1.图标透明 (1).Windows中的图标其实是有两个图像组成的,其中一个用于与它要显示的位置的图像做“AND”操作,另一个作“XOR”操作. 透明:用“白色”AND,用“黑色”XOR 反色:用“白 ...
- Spring MVC集成Tiles使用方法
首先,我们定义一个总体的tiles视图 /tiles/mainTemplate.jsp首先使用:<tiles:getAsString name="title"/>打印t ...
- 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法
装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...
- Swift调用Objective-C编写的代码(颜色选择器KKColorListPicker调用)
在Swift项目中,我们可以导入任意用Objective-C写的框架,代码库等.下面以Swift调用Objective-C编写的颜色选择器KKColorListPicker为例. 效果图如下: ...
- 百度GPSutil
================================================= package com.qcar.benz.biz.common; import com.aliba ...
- 数字雨Shopex 4.8.5 SQL Injection Exp
# -*- coding:utf-8 -* #Author:MXi4oyu #Email:798033502@qq.com #Shopex 4.8.5 SQL Injection Exp #转载请说明 ...
- MySQL触发器 trigger之for each row
for each row 每行受影响,触发器都运行.叫行级触发器. oracle 触发器中分行级触发器和语句级触发器,可不写for each row,不管影响多少行都仅仅运行一次. mysql不支持语 ...