Note: 助教招聘信息请进入「课程主页」查看。因果推断-内生性 专题 ⌚ 2020.11.12-15
主讲:王存同 (中央财经大学);司继春(上海对外经贸大学)空间计量 专题 ⌚ 2020.12.10-13
主讲:杨海生 (中山大学);范巧 (兰州大学)
目录
1. 背景介绍
目前,上市公司公告主要从巨潮网、上交所以及深交所等网站获取。爬取的步骤分为以下两步,一是获取公告地址,二是通过公告地址下载 PDF 文件。通常来说,获取公告地址比较麻烦。本文将根据 Wind 和 CSMAR 数据库的公告信息简化获取公告地址过程,并下载 PDF 文件,这里以年报为例。
2. 爬取 Wind 上市公司年报
2.1 获取年报地址
首先,打开 Wind 终端,按照公司公告->年度报告->高级检索的步骤检索上市公司年报信息。
年报检索
其次,点击导出列表,将检索到的年报信息导出到 Excel 文件。需要注意的是,Wind 最多导出 9999 条记录。实际操作中,可以通过在检索中设置时间区间分批导出。
下载年报信息
最后,公告标题在 Excel 中是以超链接形式存在,通过 Excel 中的函数 FORMULATEXT() 可以将超链接分解成链接和文本两部分。进一步,可以通过调用 Python 进行拆分,提取公告地址链接。
获取年报地址
def address(str): #定义提取公告地址函数
return str.split('"')[1]
data["公告地址"] = data["公告地址"].apply(address)
2.2 下载年报 PDF 文件
打开年报地址,可以看到年报页面是由年报 PDF 超链接和年报内容两部分组成。其中,PDF 超链接可以通过 Xpath 或 正则表达式 获取。
年报地址内容
#利用Xpath提取年报PDF链接
def pdf_url(url):
html = requests.get(url).text #获取网页源代码
tree = etree.HTML(html) #解析网页
url = tree.xpath("//div[2]/a/@href") #获取PDF链接
return "http://news.windin.com/ns/" + url[0]
data[&#