python【爬虫】【批量下载】年报抓取

news2025/1/13 9:03:02

python年报爬取更新


本人测试发现,ju chao网的年报爬取距离我上一篇博客并没有啥变化,逻辑没变,应好多朋友的需要,这里补充代码

import json
import os

import requests


web_url = '改成网站的域名,因为csdn屏蔽'
def load_json():
    with open("./stock.json", encoding="utf-8", mode="r") as f:
        return json.loads(f.read())


def query_report(_stock, time_span):
    headers = {
        'Accept': '*/*',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Cache-Control': 'no-cache',
        'Connection': 'keep-alive',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }

    data = {
        'pageNum': '1',
        'pageSize': '30',
        'column': 'szse',
        'tabName': 'fulltext',
        'plate': '',
        'stock': f'{_stock["code"]},{_stock["orgId"]}',
        'searchkey': '',
        'secid': '',
        'category': 'category_ndbg_szsh',
        'trade': '',
        'seDate': time_span,
        'sortName': '',
        'sortType': '',
        'isHLtitle': 'true',
    }
    response = requests.post(
        web_url+'/new/hisAnnouncement/query',
        headers=headers,
        data=data,
    )
    return response.json()


def download_pdf(d_url, _bank, _file_name):
    resp = requests.get(web_url + d_url, verify=False)
    if not os.path.exists(os.path.join(os.path.abspath("./"), _bank)):
        os.mkdir(os.path.join(os.path.abspath("./"), _bank))
    with open(f"./{_bank}/{_file_name}.pdf", mode="w", encoding="utf-8") as f:
        f.write(resp.text)


def name_to_stock(_bank):
    for item in stock_dic["stockList"]:
        if item["zwjc"] == _bank:
            return item


if __name__ == '__main__':
    stock_dic = load_json()
    bank_list = ["平安银行", "深南电A", "天健集团"]
    for bank in bank_list:
        stock = name_to_stock(bank)
        if not stock:
            print("[x]未找到该企业")
            exit(0)
        query_result = query_report(_stock=stock, time_span='2022-12-26~2023-06-27')
        print(f"[*]搜索【{bank}】找到:")
        for res in query_result['announcements']:
            print(f"\t[*]{res['adjunctUrl']} {res['announcementTitle']}", end="")
            download_pdf(res['adjunctUrl'], bank, res['announcementTitle'])
            print(f"\r\t[*]{res['adjunctUrl']} {res['announcementTitle']}  ...........   ok")

    print("下载完毕~")

运行结果:

pCa99hR.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入了解cookie以及实际项目中的应用

目录 cookie的原理 cookie是不可跨域的 cookie 的属性 Cookie与Session的区别 在git中的应用 cookie的原理 什么是cookie呢? 众所周知:http都是无状态的 但随着 Web 的不断发展,这种 无状态 的特性出现了弊端。当你登录到一家购物网站…

RabbitMQ保证消息的可靠投递,Java实现RabbitMQ消息的可靠投递,Springboot实现RabbitMQ消息的可靠投递

文章目录 一、RabbitMQ消息可靠性概述1、引出问题2、RabbitMQ消息可靠性保证的四个环节 二、保证生产者消息发送到RabbitMQ服务器1、服务端确认:Transaction模式(1)JavaAPI(2)springbootAPI 2、服务端确认:…

【Matlab】根据伯德图计算pid参数方法原理

在学习鲁棒控制的过程中,有一些步骤需要根据一些性能参数来计算pid参数,因此记录一下根据伯德图的性能来计算pid参数的原理。 系统开环响应的几个关键参数 在使用开环响应初调控制器参数时,主要就是调整几个需要注意的关键参数,…

nbcio-vue中formdesigner的组件显示不正常的处理

今天看演示系统的formdesigner组件显示不正常,也不知道是什么时候开始的事情, 如下: 对组件的操作倒是正常,但看本地是正常的,如下: 开始也不知道是什么原因,看代码也是一样的,应该…

11 MFC 制作记事本

文章目录 界面制作制作菜单设置编译框随着窗口的变化而变化OnSize打开文件文件另存为设置字体颜色修改字体文件的查找与替换查找与替换对话框显示(非模态对话框)对话框消息与对话框处理函数 全部代码 界面制作 制作菜单 选择Menu 点击新建 将内容写入&qu…

Nightingle夜莺Docker版SNMP监控

起因 对夜莺很感兴趣,想使用一下。我看官方提供了v6版本的docker-compose。而且我之前有使用过promtheus和grafana,虽然很好但是总觉得还是得二开。总有一天有人去搞一个不错的玩意儿出来。官方文档地址 安装与配置 直接运行docker版本的demo&#xf…

mysql内部结构和InnoDB底层原理

一、mysql内部结构 mysql总体上分为客户端、Server层、引擎层,具体如下图: 1、连接器 一般客户端通过jdbc、navicat等工具发送请求连接到mysql服务端,完成TCP三次握手后,连接器就开始认证身份,如果身份认证成功&…

数据结构-串、数组和广义表

数据结构之串、数组和广义表 串的定义一、串的顺序存储结构1.1、串的链式存储结构1.2、串的模式匹配算法1.2.1、Brute-Force简称为BF算法1.2.2、KMP算法 数组的定义2.1、数组的顺序存储结构2.2、数组的特点:结构固定-----维数和维界不变2.3、特殊矩阵的压缩存储 广义…

密码学—Kasiski测试法Python程序

Kasiski Kasiski是辅助破解Vigenere的前提工作,Kasiski是猜测加密者使用Vigenere密码体系的密钥的长度,Kasiski只是猜测长度而已,所以说是辅助破解Vigenere 若密文中出现两个相同的密文段(密文段的长度m>2),则它们对应的明文&…

leetcode第66题:加一

题目 这是一道简单的小题,自己却也没写出来。。。逆序遍历数组digits,用carry标记当前元素是否需要进位(0不要,1要)。 若carry1,则当前元素要么置0,要么自加1。自加1之后,再也不需要…

【深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心】—— 每天一点小知识

💧 深入了解 S p r i n g C l o u d A l i b a b a N a c o s :服务注册和配置中心 \color{#FF1493}{深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心} 深入了解SpringCloudAlibabaNacos:服务注册和配置中心💧…

深入浅出解析LoRA完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号:WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文,并对具备划时代意义的模型&论文进行全方位系统的解析,比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

让Ai帮我们画个粽子,它会画成什么样呢?

让Ai帮我们画个粽子,它会画成什么样呢? 本文目录: 一、Ai绘图技术的现状 二、看看Ai理解的粽子是怎样的 2.1、基础粽子 2.2、生成不同风格的粽子 2.2.1、真实风格的粽子 2.2.2、插图风格的粽子 2.2.3、3D风格的粽子 2.2.4、卡通风格…

Mysql锁机制介绍

Mysql锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&#xff0…

vue-cli笔记

vue的生命周期: 借鉴react 钩子函数: change() 挂载完毕,vue完成模板解析,并把初始的真实的dom元素放入到页面后执行 beforeCreate() {// 数据代理和数据监测创建之前console.log(beforeCreate) }, created() {console.l…

深度:全面解析数据智能的金融“炼金术”!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 金融以其财富效应,成为最新科技的试金石。一项新技术出来后,人们首先闪过的念头就是“能不能用它赚钱”。例如,ChatGPT带火了大模型,人们也开始将目标聚焦到大模型在金融领域的…

【实战】 JWT、用户认证与异步请求(下) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(五)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求1~56.用useAuth切换登录与非登录状态7.用fetch抽象通用HTTP请求方法,增强通用性8.用useHt…

AR宇航员互动体验软件:虚拟与现实叠加增强体验感

随着科技的不断发展,人们对太空探索的兴趣和热情也越来越高涨。为了满足人们对太空探索的渴望,广州华锐互动研发了宇航员AR模拟体验软件,这种软件可以让用户身临其境地体验太空探索的过程,提供一种全新的、令人兴奋的太空探索新体…

css基础知识十一:CSS3新增了哪些新特性?

一、是什么 css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更为美观 css3是css的最新标准,是向后兼容的,CSS1/2的特性在CSS3 里都是可以使用…

图解CNN中的卷积(卷积运算、池化、Padding、多通道的卷积)

文章目录 卷积操作池化Padding对多通道(channels)图片的卷积套上激活函数是什么样的参考: 卷积层是深度学习神经网络中经常使用的一种层。它通过卷积运算来提取输入的特征,常用于图像、语音等信号处理任务中。 卷积层有以下几个参…