一個極其簡潔的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM