python代码

import os
import math
import json
import requests
from copy import deepcopyURL = 'http://www.szse.cn/api/disc/announcement/annList'HEADER = {'Host': 'www.szse.cn','Origin': 'http://www.szse.cn','Referer': 'http://www.szse.cn/disclosure/listed/fixed/index.html','User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 ""(KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",'Content-Type': 'application/json','Connection': 'keep-alive','X-Request-Type': 'ajax','X-Requested-With': 'XMLHttpRequest',
}PAGE_SIZE = 30PAYLOAD = {'channelCode': ["fixed_disc"],'pageNum': 1,'pageSize': PAGE_SIZE,'seDate': ["", ""],'stock': ["000001"],
}PDF_URL_PREFIX = 'http://disc.static.szse.cn/download'def get_pdf_url(code, begin_date, end_date):pdf_urls = []payload = deepcopy(PAYLOAD)payload['stock'] = [code]payload['seDate'] = [begin_date, end_date]res = requests.post(URL, data=json.dumps(payload), headers=HEADER).json()for i in res['data']:file_name = '_'.join([i['title'], ''.join(i['publishTime'].split()[0].split('-'))])pdf_url = PDF_URL_PREFIX + i['attachPath']pdf_urls.append((file_name, pdf_url))page_count = math.ceil(res['announceCount'] / PAGE_SIZE)for j in range(page_count - 1):payload['pageNum'] = j + 2res = requests.post(URL, data=json.dumps(payload), headers=HEADER).json()for i in res['data']:file_name = '_'.join([i['title'], ''.join(i['publishTime'].split()[0].split('-'))])pdf_url = PDF_URL_PREFIX + i['attachPath']pdf_urls.append((file_name, pdf_url))return pdf_urlsdef save_pdf(code, path='./', begin_date='', end_date=''):pdf_urls = get_pdf_url(code, begin_date, end_date)file_path = os.path.join(path, code)if not os.path.isdir(file_path):os.makedirs(file_path)for file_name, url in pdf_urls:extension = url.split('.')[-1]file_full_name = os.path.join(file_path, '.'.join([file_name, extension])).replace('*', '')rs = requests.get(url, stream=True)with open(file_full_name, "wb") as fp:for chunk in rs.iter_content(chunk_size=10240):if chunk:fp.write(chunk)if __name__ == '__main__':# 下载全部报告save_pdf('000001')# 下载一段时间内的报告save_pdf('000002', begin_date='2018-12-27', end_date='2019-12-27')

运行程序后会在当前目录新建一个以股票代码命名的文件夹,并把下载的报告存入其中。

python批量下载深交所上市公司定期报告相关推荐

  1. python批量下载上交所上市公司报告

    上交所的上市公司报告搜索页面http://www.sse.com.cn/disclosure/listedinfo/announcement/ 通过查看页面调用的接口可以发现: 获取上交所全部股票代码 ...

  2. python上市公司_Python批量下载上交所上市公司报告

    上交所的上市公司报告搜索页面http://www.sse.com.cn/disclosure/listedinfo/announcement/ 通过查看页面调用的接口可以发现: 获取上交所全部股票代码 ...

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

    原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...

  4. python下载网页里面所有的图片-Python批量下载网页图片详细教程

    很多朋友在网上查找批量下载图片的方法~发觉挺凌乱的,无从下手.这里绿茶小编就来跟大家分享下使用Python批量下载图片方法. 目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件 ...

  5. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...

    原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...

  6. python批量下载b站_python 批量下载bilibili视频的gui程序

    运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...

  7. Python 批量下载SIGMOD,VLDB的论文 Mac OS

    这里写自定义目录标题 Python 批量下载SIGMOD,VLDB的论文 Mac OS 实现 0.要爬取的网站 1.下载单篇论文 2.获得所有论文的链接 完整代码 Python 批量下载SIGMOD, ...

  8. 教你怎么使用python批量下载图片

    教你怎么使用python批量下载图片 文章目录 教你怎么使用python批量下载图片 前言 一.运行环境 1. win10 2. python==3.7.2 二.需要用到的参数 1. download ...

  9. python批量下载模库网图片

    这里写自定义目录标题 python批量下载模库网图片 步骤: 代码 python批量下载模库网图片 步骤: 获取页数 获取列表页 获取图片链接和名字相关字典 创建存放图片的文件夹 下载图片 代码 im ...

最新文章

  1. Qt5.9 OpenCV3.2.0测试例程(Win10)
  2. springboot+mybatis测试时遇到java.lang.NullPointerException
  3. 大型电商项目3.0实战+支付宝、微信支付项目实战
  4. 通过相似性或相异指数的数值分布比较群落Beta多样性高低
  5. xbox one 越狱_如何在Xbox One上播放视频和音乐文件
  6. 如何拉取公网RTSP/RTMP流在内网多客户端播放
  7. 边缘AI:国内首个高性能神经网络认知+项目实战发布
  8. Developer 转型记:一个开发平台的“魔力”
  9. 一步一步SharePoint 2007之二十二:完美解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...
  10. 后台异常 - Content is not allowed in prolog
  11. java表格居中_让表格水平垂直居中
  12. 聊聊手机之--小米6
  13. RSA密钥对生成工具代码
  14. win10突然无法显示图片缩略图怎么办
  15. 有n堆石子,每次取出两堆合成一堆,每堆石子的个数即为合并石子所需要耗费的体力,求出合并所有石子堆所需要耗费的最小体力
  16. 新致新知 | 开启图谱赋能认知新篇章
  17. 路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)
  18. 视频直播质量的评测和实现分享
  19. 腾讯、阿里、百度、网易等18家中秋月饼设计盘点!(完整版)
  20. [转]SNS游戏数据分析术语揭秘

热门文章

  1. LTE中的各种ID含义
  2. 这款引文数量全球的SOD检测试剂盒,你可能想不到
  3. 怎么让dg连接mysql_搭建DG(data guard),及搭建过程中遇到的一些小问题
  4. 区块链框架:迅雷链VS石墨烯
  5. WHMCS 6 如何修改导航条菜单(主菜单)
  6. Android上的linux终端模拟器
  7. Zip和7-zip谁更强,如何选择?
  8. MySQL性能优化之降龙十八掌
  9. SQLAlchemy教程(二)基本增删改查
  10. 基于HTML制作的闲置交易网站设计