如何用requests库爬取图片安装在财经网站上爬取股票数据

苹果/安卓/wp
积分 8, 距离下一级还需 2 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯下一级可获得
道具: 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
python-大批量自动采集获取网易财经所有A股上市公司股票数据查询并导出excel表格中之前捣鼓过,但是写出来后发现其实用得很少,还不如直接看年报。
几个月前读过雪球的《重剑无锋》,这两天莫名地想起看公司时有个指标几乎都会提及,那就是资产负债率,而自己之前并不太重视这个指标,于是乎就萌生了一个网易财经上用python获取所有A股上市公司股票的资产负债率,并把股票数据导出excel表格的想法,以供股票数据查询
用了大概两个2小时写了以下代码。90%都是之前写过的,时间主要浪费在BeautifulSoup那一段的中文识别上。1
# -*- coding: utf-8-*-
# @Date& & :
# @Author&&: Lifemaxer
# @Website :
# @Description1:&&python-大批量自动采集获取网易财经所有A股上市公司股票资产负债率
# @Description2:&&并导入excel表格中
# @Description3:&&替换下方中文可修改成获取任意财务数据
# @Tools-Required: BeautifulSoup, xlwt
import re,urllib2
import xlwt
from bs4 import BeautifulSoup
class getstock:
& & def __init__(self):
& && &&&pass
& & def go(self):
& && &&&#定义网址,获取上交所创业板只需对应修改stock_num为6开头或3开头即可
& && &&&stock_num = str(count).zfill(6)
& && &&&url = 'http://quotes./f10/zycwzb_'+stock_num+',year.html'
& && &&&print(u&股票代码:& + stock_num)
& && &&&headers = {&User-Agent&:&Mozilla/5.0 (W U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/ Firefox/3.5.6&}
& && &&&req = urllib2.Request( url, headers = headers)
& && &&&try:
& && && && &content = urllib2.urlopen(req).read()
& && &&&except:
& && && && &return
& && &&&soup = BeautifulSoup(content)
& && &&&#获取名称
& && &&&name = soup.find('h1',class_='name').contents[1].contents[0].encode('gb18030').decode('gb18030')
& && &&&print name
& && &&&ws.write(count, 0, stock_num)
& && &&&ws.write(count, 1, name)
& && &&&#获取负债率
& && &&&a = soup.find_all(class_='table_bg001 border_box fund_analys')
& && &&&for i in a:
& && && && &#此处替换中文可修改成获取任意财务数据
& && && && &if i.find('td',pile(u'资产负债率')):
& && && && && &b = i.find('td',pile(u'资产负债率')).parent.contents
& && && && && &#网易财经默认一页最多显示年年报共6年
& && && && && &number = [3,4,5,6,7,8]
& && && && && &for num in number:
& && && && && && & if num & len(b):
& && && && && && && && & data = b[num].contents[0].decode('unicode_escape')
& && && && && && && && & ws.write(count, num-1, data)
if __name__ == '__main__':
& & #定义excel表格内容
& & wb = xlwt.Workbook()
& & ws = wb.add_sheet(u'资产负债表')
& & ws.write(0, 0, u'股票代码')
& & ws.write(0, 1, u'股票名称')
& & ws.write(0, 2, u'')
& & ws.write(0, 3, u'')
& & ws.write(0, 4, u'')
& & ws.write(0, 5, u'')
& & ws.write(0, 6, u'')
& & ws.write(0, 7, u'')
& & gs = getstock()
& & #目前深证最大号为002725,获取上交所创业板请修改相应最大号码
& & while count &=2725:
& && &&&gs.go()
& && &&&wb.save('stockdebt.xls')
& && &&&count += 1
1、 以下替换“资产负债率”可修改成获取股票任意财务数据,如基本每股收益(元)、主营业务收入增长率等。1
if i.find('td',pile(u'资产负债率')):
b = i.find('td',pile(u'资产负债率')).parent.contents
2、此篇代码获取的是所有深交所上市公司的资产负债率,不含创业板。
需获取创业板、上交所股票资产负债率也很简单,只需修改代码里注释的两个地方即可。3、采集完后会发现表格里有些行是空白的,原因是有些股票代码没有对应的股票。
这个我也是抓取之后才发现。更甚者,有几百个连号都是没有对应股票的。excel怎么删除空白行?参考这篇excel教程,完美解决:所有股票资产负债率数据打包下载:
解压密码: 简单整理后的效果图:
载入中......
貌似不行啊
您好楼主,您的链接失效了,可否给我发一份呀,万分感谢!
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自动根据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期、股票名称、实时报价、当日变化率、当日最低价、当日最高价。
由于Yahoo Finance的股票页面中的数值都有相应id。
例如纳斯达克100指数ETF(QQQ)
其中实时报价的HTML标记为
&span id=&yfs_l84_qqq&&87.49&/span&
而标普500指数ETF(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
本程序源代码:
HTMLParser的官方说明文档:
HTMLParser(解析HTML文档元素)
本文已收录于以下专栏:
相关文章推荐
HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析。
本文主要简单讲一下HTMLParser的用法.
使用时需要定义一个从类HTMLParser继承的类...
本系列实践目的:打算先利用github上的项目huatian-funny,通过python抓取花田网上注册用户的数据,做个小实验,然后上传自己修改后的 huatian-funny 项目。在 huati...
一个股票数据(沪深)爬虫和选股策略测试框架,数据基于雅虎YQL和新浪财经。
根据选定的日期范围抓取所有沪深两市股票的行情数据。
根据指定的选股策略和指定的日期进行选股测试。
计算选股测试实际结果(包括...
**最近捣鼓股票的东西,想看看股票的实时涨跌信息,又不想去看网上炒股软件现有的信息,所以寻思着自己写了一个Python的股票当前价格抓取工具,废话不多说,上代码:**
新浪并未提供 API,但我们可以通过抓包来获取实时或历史行情数据。实时行情比如我们可以通过浏览器访问:/?format=text&list=sh601688来获取...
如果说强大的标准库奠定了python发展的基石,丰富的第三方库则是python不断发展的保证,随着python的发展一些稳定的第三库被加入到了标准库里面,这里有6000多个第三方库的介绍:点这里或者访...
python中的pandas_datareader包中可以查询雅虎的股票数据接口。
pip install pandas_datareaderfrom pandas_datareader impor...
1.      安装支持库
$ pip install panda
$ pip install tushare
2.      说明
Pandas是数据分析工具包
Requests是Python的第三方HTTP库,非常方便地实现了python的网络连接,可以说替代了python中的urllib2模块,并且,Requests模块拥有更友好的用户体验和更完善的功能,...
他的最新文章
讲师:王哲涵
讲师:王渊命
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)[转载]如何使用&Yahoo!&Finance&stock&API&获取股票数据
本站曾介绍过,通过代码添加雅虎财经的股票走势图到自己网站的方法(,),调用的是一张图片。今天在网站,看到了从雅虎财经频道获取股票数据的API(Yahoo! Finance stock
API),觉得 API 使用更广泛,作个转引。
1、通过API获取实时数据
/d/quotes.csv?s=&股票名称&&f=&数据列选项&
表示股票名称,多个股票之间使用英文加号分隔,如”XOM+BBDb.TO+JNJ+MSFT”,罗列了四个公司的股票:XOM,
BBDb.TO, JNJ, MSFT。
f & 表示返回数据列,如”snd1l1yr”。更详细的参见。
2、通过API获取历史数据
/table.csv?s=&string&&a=&int&&b=&int&&c=&int&&d=&int&&e=&int&&f=&int&&g=d&ignore=.csv
s & 股票名称
a & 起始时间,月
b & 起始时间,日
c & 起始时间,年
d & 结束时间,月
e & 结束时间,日
f & 结束时间,年
g & 时间周期。Example: g=w, 表示周期是’周’。d-&’日’(day),
w-&’周’(week),m-&’月’(mouth),v-&’dividends
一定注意月份参数,其值比真实数据-1。如需要9月数据,则写为08。
3、通过API获取深沪股票数据
雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.ss,深圳市场末尾加.sz。
最近股市甚火,受聘开发一股票网站,股票的数据从哪里来成了一个大问题,股票软件一般都是加密处理的,还有一些web
services也是要帐号的,免费的方法只有一种了,抓别人网站的数据。好在经我研究,发现yahoo提供国内和国外股市每天的交易数据资料,这可谓一
大幸事啊。
上面的链接可以抓取IBM股票从日起到的数据。把ibm改成sohu,就可以抓到sohu的股票数据了。
上面链接可以抓搜狐股票的数据。
  那么中国股市的数据有没有呢?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz
例如:000001 = 000001.sz
深市数据链接:
上市数据链接:
上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss
下面就是世界股票交易所的网址和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。
上海交易所=cn.,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.,.SZ,Chinese,sl1d1t1c1ohgv
美国交易所=,,United States,sl1d1t1c1ohgv
加拿大=ca.,.TO,Toronto,sl1d1t1c1ohgv
新西兰=au.,.NZ,sl1d1t1c1ohgv
新加坡=sg.,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.,.HK,Hong Kong,sl1d1t1c1ohgv
台湾=tw.,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.,.BO,Bombay,sl1d1t1c1ohgv
伦敦=uk.,.L,London,sl1d1t1c1ohgv
澳洲=au.,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.,.ST,Stockholm,sl1d1t1c1ohgv
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。抓取雅虎财经里道琼斯30支成分股的股票数据,用python中的urllib和正则表达式抓不到为什么? - 知乎11被浏览756分享邀请回答from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('/quote/%5EDJA')
element = driver.find_element_by_link_text('Components')
webdriver.ActionChains(driver).click(element).perform()
time.sleep(5)
dStr = driver.page_source.encode('utf-8')
m = re.findall(r'&td class="Py.*?&&.*?&(.*?)&/a&&/td&.*?&(.*?)&/td&.*?&(.*?)&/td&.*?&&.*?&(.*?)&/span&&/td&.*?&(.*?)&/td&', dStr)
print '\n'
print len(m)
print 'not match'
driver.close()
完美解决!哈哈,不过我会告诉你我花了整整一个晚上吗?初学者就这么慢。。。62 条评论分享收藏感谢收起

我要回帖

更多关于 requests 实时网站 的文章

 

随机推荐