python金融数据挖掘与分析(六)——解析上市公司PDF公告
@[toc]
这篇博文主要介绍通过数据挖掘技术批量下载菊草资讯网的上市公司理财公告PDF文件,并通过PDF文本解析技术分析获取到的理财公告PDF文件,从中识别潜在的机构投资者。
1. PDF文件批量下载
在金融网站数据挖掘实战这篇博文中,我们介绍了在巨潮资讯网爬取公告信息的方法,该方法可以作文本文工作的基础,并在爬取多页内容、自动筛选所需内容,爬取某段时间的数据,理财公告PDF文件自动下载等功能方面进行扩展。
1.1 爬取多页内容
之前介绍过,我们可以通过修改网页参数的方式爬取多页内容,但是这在巨潮资讯网不适用,因为进行翻页操作时,网址并没有发生变化。此时可以利用Selenium库模拟鼠标单击下图所示的“下一页”按钮,并根据公告数量来确定模拟单击的次数,每单击一次就获取一下改业的源代码,最后把获取到的各页的源代码存储到一个列表里。
模拟翻页的代码如下:
browser = webdriver.Chrome()
url = 'http://www.cninfo.com.cn/new/fulltextSearch?notautosubmit=&keyWord=理财'
browser.get(url)
time.sleep(3)
browser.find_element_by_xpath('//*[@id="fulltext-search"]/div/div[1]/div[2]/div[4]/div[2]/div/button[2]').click()
【python金融数据挖掘与分析(六)——解析上市公司PDF公告】上面的代码可以实现自动翻页功能,下面需要实现控制翻页的次数,也就是获取总页数,每页显示10条公告,所以公告总数除以10可得到总
页数。
data = https://www.it610.com/article/browser.page_source
page_pattern ='约\s*(.*?)\s*条 当前显示.*?条'
count = re.findall(page_pattern, data)[0]
pages = int(int(count)/10)
findall()函数返回的是一个列表,因此要想获取列表中的元素,需要使用索引。
将上面两项功能结合起来,实现每次翻页时都获取当前页面的源码,并把每一页的源码存储到data_list列表中,代码如下:
# 每次翻页时都获取当前页面的源码,并把每一页的源码存储到data_list列表中
data_list = []
data_list.append(data)
# for i in range(pages):
for i in range(3):
browser.find_element_by_xpath('//*[@id="fulltext-search"]/div/div[1]/div[2]/div[4]/div[2]/div/button[2]').click()
time.sleep(2)
data = https://www.it610.com/article/browser.page_source
data_list.append(data)
time.sleep(1)# 将所有源码转换成一个字符串,方便进行正则化处理
alldata =''.join(data_list)
browser.quit()# 提取标题、链接及日期数据
''
title_pattern = '(.*?)'
href_pattern = ' .*?href="https://www.it610.com/article/(.*?)" data-id='
date_pattern = '
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Python数据分析(一)(Matplotlib使用)
- Python|Python 9.20