楼主: codeup
20144 7

[统计软件] python-大批量自动采集获取网易财经所有A股上市公司股票数据查询并导出excel表格中 [推广有奖]

  • 0关注
  • 0粉丝

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
40 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2015-9-20
最后登录
2015-9-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
python-大批量自动采集获取网易财经所有A股上市公司股票数据查询并导出excel表格中

之前捣鼓过python获取股票002023海特高新2013年年度报告中的所需部分,但是写出来后发现其实用得很少,还不如直接看年报。
几个月前读过雪球@小小辛巴的《重剑无锋》,这两天莫名地想起@小小辛巴看公司时有个指标几乎都会提及,那就是资产负债率,而自己之前并不太重视这个指标,于是乎就萌生了一个网易财经上用python获取所有A股上市公司股票的资产负债率,并把股票数据导出excel表格的想法,以供股票数据查询
用了大概两个2小时写了以下代码。90%都是之前写过的,时间主要浪费在BeautifulSoup那一段的中文识别上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# -*- coding: utf-8-*-
# @Date    : 2014-05-20
# @Author  : Lifemaxer
# @Website : http://lifemaxer.com
# @Description1:  python-大批量自动采集获取网易财经所有A股上市公司股票资产负债率
# @Description2:  并导入excel表格中
# @Description3:  替换下方中文可修改成获取任意财务数据
# @Tools-Required: BeautifulSoup, xlwt
import re,urllib2
import xlwt
from bs4 import BeautifulSoup
count = 1
class getstock:
    def __init__(self):
        pass

    def go(self):
        #定义网址,获取上交所创业板只需对应修改stock_num为6开头或3开头即可
        stock_num = str(count).zfill(6)
        url = 'http://quotes.money.163.com/f10/zycwzb_'+stock_num+',year.html'
        print(u"股票代码:" + stock_num)
        headers = {"User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 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',text=re.compile(u'资产负债率')):
               b = i.find('td',text=re.compile(u'资产负债率')).parent.contents
               #网易财经默认一页最多显示2008-2013年年报共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'2013-12-31')
    ws.write(0, 3, u'2012-12-31')
    ws.write(0, 4, u'2011-12-31')
    ws.write(0, 5, u'2010-12-31')
    ws.write(0, 6, u'2009-12-31')
    ws.write(0, 7, u'2008-12-31')
    gs = getstock()
    #目前深证最大号为002725,获取上交所创业板请修改相应最大号码
    while count <=2725:
        gs.go()
        wb.save('stockdebt.xls')
        count += 1

1、 以下替换“资产负债率”可修改成获取股票任意财务数据,如基本每股收益(元)、主营业务收入增长率等。

1
2
if i.find('td',text=re.compile(u'资产负债率')):
b = i.find('td',text=re.compile(u'资产负债率')).parent.contents

2、此篇代码获取的是所有深交所上市公司的资产负债率,不含创业板。
需获取创业板、上交所股票资产负债率也很简单,只需修改代码里注释的两个地方即可。

3、采集完后会发现表格里有些行是空白的,原因是有些股票代码没有对应的股票。
这个我也是抓取之后才发现。更甚者,有几百个连号都是没有对应股票的。

excel怎么删除空白行?

参考这篇excel教程,完美解决:Excel批量自动删除空白行超简单方法

所有股票资产负债率数据打包下载:

数据压缩包附件
解压密码: lifemaxer.com

简单整理后的效果图:




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:excel表格 Excel表 python A股上市公司 上市公司股票 上市公司 excel表格 网易财经 海特高新 python

貌似不行啊

使用道具

藤椅
skyoflanneret 发表于 2016-1-20 10:38:41 |只看作者 |坛友微信交流群
您好楼主,您的链接失效了,可否给我发一份呀,万分感谢! 358554731@qq.com

使用道具

板凳
yunnandlg 在职认证  学生认证  发表于 2017-12-27 11:01:51 |只看作者 |坛友微信交流群
厉害了,学习学习

使用道具

报纸
一亿两白银 学生认证  发表于 2018-9-12 21:10:23 |只看作者 |坛友微信交流群
urllib2的库已经停用了吗?我下载不了

使用道具

地板
kunda 发表于 2018-10-14 15:25:21 |只看作者 |坛友微信交流群
为什么不去证监会指定的报表披露网站抓取呢。

使用道具

7
king.ming 在职认证  发表于 2019-12-30 23:30:27 |只看作者 |坛友微信交流群
您好楼主,您的链接失效了,可否给我发一份呀,万分感谢! 21810397@qq.com

使用道具

8
无重力飞翔 发表于 2020-2-28 17:07:22 |只看作者 |坛友微信交流群
学习一下

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 17:08