一、簡介
上海證券交易所上市公司定期報告下載,項(xiàng)目地址 https://github.com/thunderhit/shreport
能:
獲取上證交易所所有公司目錄
上市公司歷年報告(季報、半年報、年報)
使用演示視頻
B站:如何用Python批量下載上交所上市公司的年報pdf文件
二、安裝
pip install shreport
三、功能說明
companys()
上證所有上市公司名錄,公司名及股票代碼
:return: 返回DataFrame
pdfurls(code)
僅獲取定期報告pdf下載鏈接
:param code: 股票代碼
:return: 年報pdf鏈接
disclosure(self, code)
獲得該公司的股票代碼、報告類型、年份、定期報告披露日期、定期報告pdf下載鏈接, 返回DataFrame
:param code: 股票代碼
download(code, savepath)
下載該公司(code)的所有季度報告、半年報、年報pdf文件
:param code: 上市公司股票代碼
:param savepath: 數(shù)據(jù)存儲所在文件夾的路徑,建議使用相對路徑
四、快速入門
一定要先獲得cookies后才能使用下面的所有代碼,這里先直接看代碼使用情況,cookies獲取可見文檔
五、獲取cookies**
4.1 獲取上證交易所上市公司目錄
from shreport import SH
cookies = {"Cookie": '您的cookies'}
sh = SH(cookies)
df = sh.companys()
#將查詢結(jié)果存儲
#df.to_excel('上證交易所上市公司名錄.xlsx')
#顯示前5條數(shù)據(jù)
df.head()
Run
| name | code |
|---|---|
| 浦發(fā)銀行 | 600000 |
| 白云機(jī)場 | 600004 |
| 東風(fēng)汽車 | 600006 |
| 中國國貿(mào) | 600007 |
| 首創(chuàng)股份 | 600008 |
4.2下載某公司所有定期報告文件
絕大多數(shù)報告文件名格式
| 文件 | 文件名 | 例子 |
|---|---|---|
| 季度報 | 公司代碼-年份-數(shù)字 | 600000-2000-1.pdf、600000-2000-3.pdf |
| 半年報 | 公司代碼-年份-z | 600000-2000-z.pdf |
| 年報 | 公司代碼-年份-n | 600000-2000-n.pdf |
代碼
from pathlib import Path
from shreport import SH
cookies = {"Cookie": '您的cookies'}
sh = SH(cookies)
#獲取當(dāng)前代碼所在的文件夾路徑
cwd = Path().cwd()
#以浦發(fā)銀行為例股票代碼600000
sh.download(code='600000', savepath=cwd)
Run
=======請耐心等待,正在獲取600000數(shù)據(jù)
=======準(zhǔn)備獲取600000年報文件鏈接========
=======年報文件鏈接已獲取完畢=============
已成功下載600000_2000_1.pdf
已成功下載600000_2000_z.pdf
已成功下載600000_2000_3.pdf
已成功下載600000_2000_n.pdf
......
已成功下載600000_2019_1.pdf
已成功下載600000_2019_z.pdf
已成功下載600000_2019_3.pdf
已成功下載600000_2000_n.pdf
4.3 獲取某公司的所有定期報告相關(guān)信息
如果暫時不想下載定期報告pdf文件,可以可以先獲取某公司的
- 股票代碼
- 報告類型
- 年份
- 定期報告披露日期
- 定期報告pdf下載鏈接
結(jié)果返回DataFrame
from shreport import SH
cookies = {"Cookie": '您的cookies'}
sh = SH(cookies)
#獲取浦發(fā)銀行披露信息
df = sh.disclosure(code='600000')
#存儲數(shù)據(jù)
#df.to_excel('600000.xlsx')
#前5條信息
df.head()
Run
| company | code | type | year | date | |
|---|---|---|---|---|---|
| 浦發(fā)銀行 | 600000 | 半年報 | 2000 | 2000-07-28 | http://www.sse.com.cn/disclosure/listedinfo/announcement/c/600000_2000_1.pdf |
| 浦發(fā)銀行 | 600000 | 第三季度季報 | 2002 | 2002-10-30 | http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2002-10-30/600000_2002_3.pdf |
| 浦發(fā)銀行 | 600000 | 半年報 | 2002 | 2002-08-17 | http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2002-08-17/600000_2002_z.pdf |
| 浦發(fā)銀行 | 600000 | 第一季度季報 | 2002 | 2002-04-27 | http://www.sse.com.cn/disclosure/listedinfo/announcement/c/600000_2002_1.pdf |
| 浦發(fā)銀行 | 600000 | 年報 | 2001 | 2002-03-21 | http://www.sse.com.cn/disclosure/listedinfo/announcement/c/600000_2001_n.pdf |
4.4 獲取某公司的所有定期報告url
如果暫時不想下載定期報告pdf文件,可以只得到該公司所有的報告文件鏈接
from shreport import SH
cookies = {"Cookie": '您的cookies'}
sh = SH(cookies)
#以浦發(fā)銀行為例股票代碼600000
urls = sh.pdfurls(code='600000')
urls
Run
=======準(zhǔn)備獲取600000年報文件鏈接========
=======年報文件鏈接已獲取完畢=============
['http://www.sse.com.cn/disclosure/listedinfo/announcement/c/600000_2000_1.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2002-10-30/600000_2002_3.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2002-08-17/600000_2002_z.pdf',
.......
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/600000_2002_1.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2019-03-26/600000_2018_n.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2018-10-31/600000_2018_3.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2018-08-30/600000_2018_z.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2018-04-28/600000_2017_n.pdf',
'http://www.sse.com.cn/disclosure/listedinfo/announcement/c/2018-04-28/600000_2018_1.pdf']
五、獲取cookies
一定要先獲得cookies后才能使用所有的代碼,獲取方法
- 瀏覽器訪問http://www.sse.com.cn/disclosure/overview/
- 按F12(mac按option+command+I)打開開發(fā)者工具的Network
- 刷新網(wǎng)頁,耐心尋找與www.sse.com.cn有關(guān)的任意網(wǎng)址,找到cookies
[圖片上傳失敗...(image-e1babe-1587878203272)]
如果
如果您是經(jīng)管人文社科專業(yè)背景,編程小白,面臨海量文本數(shù)據(jù)采集和處理分析艱巨任務(wù),個人建議學(xué)習(xí)《python網(wǎng)絡(luò)爬蟲與文本數(shù)據(jù)分析》視頻課。作為文科生,一樣也是從兩眼一抹黑開始,這門課程是用五年時間凝縮出來的。自認(rèn)為講的很通俗易懂o( ̄︶ ̄)o,
- python入門
- 網(wǎng)絡(luò)爬蟲
- 數(shù)據(jù)讀取
- 文本分析入門
- 機(jī)器學(xué)習(xí)與文本分析
- 文本分析在經(jīng)管研究中的應(yīng)用
感興趣的童鞋不妨 戳一下《python網(wǎng)絡(luò)爬蟲與文本數(shù)據(jù)分析》進(jìn)來看看~
更多
公眾號:大鄧和他的python