Python自动化小技巧13——批量下载北交所上市公司年报

案例背景

同学问能不能爬虫下载年报,要下很多公司,一个一个搜索下载太慢了...

这种重复性的劳动交给Python脚本可太适合了

核心思想还是使用selenium库去模拟人输入股票代码和搜索下载。

北交所网站:

上市公司公告 - 北京证券交易所 (bse.cn)


代码实现

导入包

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

模拟点击:

这里用的是edge的驱动器,需要去官网下载:

Python自动化小技巧13——批量下载北交所上市公司年报_第1张图片

 然后把msedgedriver.exe文件和代码放在一个目录下就能运行了。

使用EdgeOptions()的类设置了一下浏览器的设置,让pdf下载的位置都进行了设定,免得下载了找不到......

要下载的公司的股票代码放在stock列表里面就行。我这里就只用了两个公司测试一下。

from selenium.webdriver import Edge
from selenium.webdriver.edge.options import Options as EdgeOptions
options = EdgeOptions()
options.add_experimental_option('prefs', {
    "download.default_directory": 'D:\\AAA最近要用\\下载',  #下载的年报存储路径
    "download.prompt_for_download": False, #To auto download the file
    "download.directory_upgrade": True,
    "plugins.always_open_pdf_externally": True #It will not show PDF directly in chrome
})


driver = webdriver.Edge("msedgedriver", options=options)
url = "http://www.bse.cn/disclosure/announcement.html"
driver.implicitly_wait(10)
driver.get(url)
sleep(5)
stock=['837344','837242']  #代码列表
driver.find_element(By.XPATH,'//*[@id="root"]/div[4]/div/div/div[1]/div/div[1]/div/div[4]/div/div/span[2]').click()
for i in range(len(stock)):
    code=driver.find_element(By.XPATH,'//*[@id="companyCode"]')
    code.clear()
    code.send_keys(stock[i])
    driver.find_element(By.XPATH,'//*[@id="submit "]').click()
    
    driver.find_element(By.XPATH,'//*[@id="table"]/table/tbody/tr[1]/td[4]/a').click()#下载摘要
    sleep(5)
    driver.find_element(By.XPATH,'//*[@id="table"]/table/tbody/tr[2]/td[4]/a').click()#下载报告
    sleep(5)
    code.clear()
    sleep(2)
    print(f'{stock[i]}的2021年年报下载完成')
    
driver.quit()

上面代码就是输入股票代码,点击查询,然后点击前两个pdf链接,然后清空搜索行重新输入下一个股票代码,查询,下载.....循环往复。

我这里模拟只点击了 前两个pdf文件,也就是2021的年报和摘要。如果需要更多的年份也是可以再加几个Xpath路径点击就行。

Python自动化小技巧13——批量下载北交所上市公司年报_第2张图片

 

然后就下载完成啦。

你可能感兴趣的:(Python自动化小技巧,python,公司年报,自动下载,selenium)