怎么用 Python 抓取上市公司的财务数据呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
iwukong
V2EX    Python

怎么用 Python 抓取上市公司的财务数据呢

  •  
  •   iwukong 2020-07-29 23:11:15 +08:00 6728 次点击
    这是一个创建于 1904 天前的主题,其中的信息可能已经有所发展或是发生改变。
    怎么用 python 抓取上市公司的财务数据呢

    我想抓取港股 美股的

    港股是 PDF 美国是 HTM
    25 条回复    2020-07-30 16:37:10 +08:00
    locoz
        1
    locoz  
       2020-07-29 23:47:07 +08:00 via Android
    首先,你自己怎么看到这些数据?
    Oilybear
        2
    Oilybear  
       2020-07-30 00:03:51 +08:00
    仅个人观点,HTM 不太清楚,PDF 全自动化多少会有些问题。目前应用方数据更多是直接上一下金融数据提供商( wind 万德)购买数据接口
    black11black
        3
    black11black  
       2020-07-30 00:21:21 +08:00
    理论上如果有网站展示这些数据,为了向普遍用户展示,是不太做严格的权限管理的,所以简单爬一下就什么都有
    TypeError
        4
    TypeError  
       2020-07-30 00:24:21 +08:00
    不嫌麻烦直接去 SEC 下载财报文件、招股书啥的,然后自己解析
    br />嫌麻烦去美股券商网站爬虫看看
    reayyu
        5
    reayyu  
       2020-07-30 00:34:09 +08:00 via iPhone   1
    Wind 或者 bloomberg 吧
    PbCopy111
        6
    PbCopy111  
       2020-07-30 01:07:13 +08:00
    抓披露易上面的么?
    iwukong
        7
    iwukong  
    OP
       2020-07-30 07:20:36 +08:00
    @PbCopy111 是的 或者美国证券协会 或者 国内沪深的数据
    iwukong
        8
    iwukong  
    OP
       2020-07-30 07:22:22 +08:00
    @black11black 我还在学习 python 基础 不太懂怎么爬 有这方面教程吗
    iwukong
        9
    iwukong  
    OP
       2020-07-30 07:24:33 +08:00
    @Oilybear 那成本可高了 我用这些数据做投资分析 为我投资做辅助用
    murmur
        10
    murmur  
       2020-07-30 08:25:07 +08:00
    @iwukong 出钱请人抓就行,你都投资了,这点技术就不值得投资么
    iwukong
        11
    iwukong  
    OP
       2020-07-30 08:29:11 +08:00
    @murmur 在学东西这个过程 朋友
        12
    hakono  
       2020-07-30 08:43:45 +08:00 via Android
    楼上一些人是不知道上市公司的财务报表,会直接在官网公布的吧(这是上市公司的义务
    财报这东西我跟楼主你说,没办法的,是不可能自动抓取的。不同公司雇佣的财务会计公司不同,财报的格式不同,各种项目名称也会不同,用的统计方式也会不同。一些关键数据甚至是夹杂在财报的一些文本段落里,或者一个数据多个版本,或者给你个数据然后下面一行小字注解下,要做个换算才是真正的数据。
    因为财报会影响股价,所以上市公司都会想法设法在财报里做手脚,用各种不同的计算方法让财报表面数据好看,而这些只能靠有经验的人才能发现,是不可能自动化的

    毕竟你要知道这种自动财报分析软件,真能做早就有人做了。如果你做出来了,你都不用投资了,光成立个公司卖服务就能财务自由了
    hakono
    takemeaway
        13
    takemeaway  
       2020-07-30 09:59:35 +08:00
    这应该很简单吧,html 的还不容易? PDF 的有插件可以转 HTML,也可以直接识别。
    zwj2885
        14
    zwj2885  
       2020-07-30 10:07:38 +08:00
    @hakono 是的,哥们是说到点上的人。之前就考虑过用 AI 自然语言处理来读懂财报,github 搜了个遍,也没遇到好的开源项目。
    L2AKnG8GXx60bc6P
        15
    L2AKnG8GXx60bc6P  
       2020-07-30 10:36:52 +08:00 via iPhone
    这个坑我研究过,港股的 pdf 就不要想了,无解;美股的 sec 有结构化的,爬就行了;我 A 的 pdf 是有解决方案的,我之前写过一个 naivepdf 的 python 库,后来发现坑太多,就搁置了在 github 上。
    L2AKnG8GXx60bc6P
        16
    L2AKnG8GXx60bc6P  
       2020-07-30 10:39:01 +08:00 via iPhone
    @hakono 其实 90%的都差不多,排名前十的会计师事务所基本上把 A 股的大部分公司瓜分了,港股就是个奇葩。
    lewis89
        17
    lewis89  
       2020-07-30 11:00:25 +08:00   1
    财务美化 变相降低折旧率 手法太多 你抓了也没毛线用..
    sudoy
        18
    sudoy  
       2020-07-30 11:19:47 +08:00
    用 python 抓取数据本身不难,有一大堆库和工具可以用,简单的就用[scrapy]( https://scrapy.org/) 好上手。难度在于:(1) 就像 #12 楼说的报表本身的解读比较难; (2) python 解析这些 PDF 的时候难免识别出错。特别是那些直接把图片做成 pdf 的,对于这种很多 python 库都用调用[谷歌 OCR 引擎]( https://github.com/tesseract-ocr/tesseract), 我试过,这种对于像素不清晰的很容易识别错。( 3 )就算你算出合理股价,也不一定有帮助。我订阅雅虎财经付费版,他们都帮我计算出合理股价( Fair Value),但是股票即便高于合理价格一样猛涨,比如特斯拉,而很多低于合理价格的股票,却狂跌,比如航空公司。当然了,计算出合理股价,毕竟还是有帮助的,至少能知道你买入的点是高还是低,心里有个数。

    ![]( )
    Sunben
        19
    Sunben  
       2020-07-30 11:21:30 +08:00
    import requests
    from bs4 import BeautifulSoup
    import pandas as pd
    ytmsdy
        20
    ytmsdy  
       2020-07-30 11:43:39 +08:00
    hakono
        21
    hakono  
       2020-07-30 11:44:42 +08:00
    @relic 只是爬虫爬一下的话的确简单,但是分析的话你自己都做过,有多少坑你也应该是知道的。
    你说 90%差不多,但是实际上是在这 90%差不多的公司里,会影响到整个财报评价的关键数据内容都会有所不同(上市公司为了财报好看,明显的数据都是会搞的比较好看。而真正能代表真实财务数据的部分,可能就会在哪个旮旯角落用些小字注释下,或者用一般人都想不到的说法给说出来,目的就是不让你注意到,这种只有有看财报经验的人才可能注意到)
    以及,也欢迎来日股财报玩玩,能让你怀疑人生
    财报这种东西真的想了半天,想做出个精确提取的话得要上 AI
    zzzmh
        22
    zzzmh  
       2020-07-30 12:02:51 +08:00
    如果花钱走捷径的话,可以去找找别人爬然后出来卖 api 的项目。我见过一两个但觉得贵又怕不追就没深入了解。
    lewis89
        23
    lewis89  
       2020-07-30 13:32:57 +08:00
    @hakono 只能说套路太多,实际上真正要了解一家公司 ,财报很难反应出来的,例如上市公司持有的非上市公司股票,但是非上市公司不公布财报,你怎么界定上市公司所持有股份的价值,还有折旧率润色 把货卖给经销商 虚报营业额跟利润,套路简直太多..
    iwukong
        24
    iwukong  
    OP
       2020-07-30 13:33:38 +08:00
    @hakono 我们先把现在数据抓取下来 再说财务美化问题 这个就是个人来处理了
    zxcfka2004
        25
    zxcfka2004  
       2020-07-30 16:37:10 +08:00
    抓股票 app 的接口,或者东财网站
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3645 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 00:05 PVG 08:05 LAX 17:05 JFK 20:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86