python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告

原标题:使用Python批量下载Wind数据库中的PDF报告

背景

最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告。通过相关的条件检索,发现其相关数据有近百条。由于Wind金融数据终端目前并不支持批量下载公司公告(只能逐个点击链接后下载pdf格式的公告)。因此,如果手动点击鼠标逐条下载公告的话,花费几个小时是非常耗时的,特别是如果检索的公告有上千条的话,那小编是绝对会拒绝点击鼠标的。

解决方案

小编在这里将介绍利用Python网络爬虫这一利器,来解决Wind数据库中批量下载公告的问题。

批量下载的思路是:Wind金融数据库仅仅提供以Excel/CSV格式保存的url链接(见下图,数据),因此本文将通过解析url链接去获取上市企业的公告文本(pdf格式)。

3e40b4fd20dd4594a9e921f90b04096a.png

少说多做,show me the code,全部码源如下:

# 导入所需的第三方模块

importrequests

frombs4 importBeautifulSoup

importos

importpandas aspd

# 读取链接

urls = pd.read_excel(r'test123.xls').url123

# 构造用户代理,防止反爬虫

headers = {'User-Agen

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该系统主要是为了解决行业研究在提取公司财务数据以及进行财务数据分析时过于繁琐的问题。由于目前金融业使用wind较多,故本系统暂时采用了wind接口,通过自动化从wind提取相关公司财务数据并自动进行财务分析, 最后会将得到的结果以excel的形式输出到本地。 功能特点 提取数据。该系统目前主要整合了wind的python API接口,通过设定初始时间和结束时间及公司代码和名称,就可以直接通过wind的API提取财务数据。 覆盖全方位财务分析指标 盈利能力 毛利率 经营利润率(EBIT/net revenue) 净利率 ROA ROE ROIC(投入资本回报率) 销售费用率 管理费用率 财务费用率 销售期间费用率(三费加上研发/营业收入) 营运能力 总资产周转率(turnover=net revenue/assets) 固定资产周转率(net revenue/average net fixed assets) 营运资本周转率(net revenue/average working capital,here WC=current assets-current liabilities) 应收账款周转天数 应付账款周转天数 存货周转天数 营业周期(Operating cacle=应收账款周转天数+存货周转天数) 现金循环周期,又名净营业周期(Cash conversion cycle=应收账款周转天数+存货周转天数-应付账款周转天数) 流动性 流动比率(current ratio):流动资产/流动负债 速冻比率(quick ratio):(流动资产-存货)/流动负债 现金比率(Cash ratio):(现金+交易性金融资产)/流动负债 偿债能力 有息负债/净资产 有息负债/总资产 利息保障倍数(EBIT/Interest) 货币资金加上交易性金融资产/有息负债 货币资金/有息负债 估值水平 PE PB PE历史分位数 PB历史分位数 现金流数据 CFO/revenue CFO/average total assets CFO/average total equity CFO/operating income CF0/net income (CFO-perferred dividends)/weighted average number of common shares CFO/total debt(这里采用有息负债) CFO/cash paid for long-term assets(固定资产投资) CFO/cash long-term debt repayment CFO/dividend paid CFO/cash outflows from investing and financing activities (CFO+interest paid+taxes paid)/interest paid 信用水平 Z-score 成长性 营业收入同比 营业利润同比 净利润同比 归母净利润同比 扣非归母净利润同比 CFO同比
批量下载年报,可以使用Python的Selenium和BeautifulSoup库来实现。首先,你需要导入所需的库和模块: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from bs4 import BeautifulSoup import os import pandas as pd from time import sleep ``` 接下来,你可以使用Selenium库来模拟点击操作。通过找到对应的元素,使用XPath路径来定位并点击链接来下载年报。比如,你可以使用以下代码来点击前两个PDF文件的链接: ```python # 点击前两个PDF链接 # 填写XPath路径 pdf_link_xpath_1 = "XPath路径1" pdf_link_xpath_2 = "XPath路径2" # 模拟点击 driver.find_element(By.XPATH, pdf_link_xpath_1).click() driver.find_element(By.XPATH, pdf_link_xpath_2).click() ``` 可以根据需要,再添加更多的XPath路径来点击更多的年份的PDF链接。 另外,你可能需要设置循环,以便对多个股票代码进行年报下载。你可以使用类似以下代码的循环来实现: ```python # 循环下载多个股票的年报 for stock_code in stock_codes: # 输入股票代码并点击查询 driver.find_element(By.XPATH, search_bar_xpath).clear() driver.find_element(By.XPATH, search_bar_xpath).send_keys(stock_code) driver.find_element(By.XPATH, search_button_xpath).click() # 下载年报 # 添加代码来点击年报链接并下载 # 清空搜索栏 driver.find_element(By.XPATH, search_bar_xpath).clear() ``` 这样,你就可以通过循环来实现对多个股票代码的年报下载了。 请注意,以上代码只是一个示例,具体的XPath路径和其他操作需要根据你所使用的网站进行调整。另外,为了确保成功下载年报,你可能需要在代码添加适当的等待时间,以确保页面加载完成。 希望这些信息对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python自动化小技巧13——批量下载北交所上市公司年报](https://blog.csdn.net/weixin_46277779/article/details/128064068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值