AI金融投资:批量下载深交所公募REITs公开说明书

打开深交所公募REITs公开说明书页面,F12查看网络,找到真实地址:https://reits.szse.cn/api/disc/announcement/annList?random=0.3555675437003616

{

"announceCount": 39,

"data": [

{

"id": "80bc99a7-8a04-4803-b42a-d9cca1e6c5d5",

"annId": 1220300147,

"title": "华夏华润商业REIT:华夏华润商业资产封闭式基础设施证券投资基金招募说明书更新",

"content": null,

"publishTime": "2024-06-08 00:00:00",

"attachPath": "/disc/disk03/finalpage/2024-06-08/a77d6a34-c4eb-4dcf-9b16-7c2ce856ebdd.PDF",

"attachFormat": "PDF",

"attachSize": 6265,

"secCode": [

"180601"

],

"secName": [

"华夏华润商业REIT"

],

"bondType": null,

"bigIndustryCode": null,

"bigCategoryId": null,

"smallCategoryId": null,

"channelCode": null,

"_index": "ows_disclosure-20180825"

},

返回的是json数据,PDF地址在这里:"/disc/disk03/finalpage/2024-06-08/a77d6a34-c4eb-4dcf-9b16-7c2ce856ebdd.PDF",

打开下载页面,查看网站URL:https://disc.static.szse.cn/disc/disk03/finalpage/2024-06-08/a77d6a34-c4eb-4dcf-9b16-7c2ce856ebdd.PDF

那么,开头要添加的是“https://disc.static.szse.cn”

在deepseek中输入提示词:

你是一个Python编程专家,写一个Python脚本,具体步骤如下:

请求网址:

https://reits.szse.cn/api/disc/announcement/annList?random=0.3555675437003616

请求方法:

POST

状态代码:

200 OK

远程地址:

58.251.50.138:443

引荐来源网址政策:

strict-origin-when-cross-origin

请求载荷:

{"seDate":["",""],"channelCode":["reits-xxpl"],"bigCategoryId":["directions"],"pageSize":50,"pageNum":1}

请求标头:

Accept:

application/json, text/javascript, */*; q=0.01

Accept-Encoding:

gzip, deflate, br, zstd

Accept-Language:

zh-CN,zh;q=0.9,en;q=0.8

Connection:

keep-alive

Content-Length:

104

Content-Type:

application/json

Host:

http://reits.szse.cn

Origin:

https://reits.szse.cn

Referer:

https://reits.szse.cn/disclosure/index.html

Sec-Ch-Ua:

"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"

Sec-Ch-Ua-Mobile:

?0

Sec-Ch-Ua-Platform:

"Windows"

Sec-Fetch-Dest:

empty

Sec-Fetch-Mode:

cors

Sec-Fetch-Site:

same-origin

User-Agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

X-Request-Type:

ajax

X-Requested-With:

XMLHttpRequest

获取网页返回的响应,这是一个嵌套的json数据;

定位到 "data"键下"title"键对应的值,这是PDF文件的标题;

定位到 "data"键下 "attachPath"键对应的值,这是PDF文件URL,前面加上“https://disc.static.szse.cn”,构成一个完整的PDF下载URL;

下载PDF文件,保存到文件夹:F:\AI自媒体内容\AI炒股\REITs

注意:每一步都要输出信息

PDF文件标题中可能包括一些不符合window系统命名规则的特殊符号,在重命名PDF文件前要先进行处理;

每下一个PDF文件,就随机暂停3-6秒;

源代码:

import requests

import json

import os

import time

import random

import re

# 定义请求URL和请求头

url = "https://reits.szse.cn/api/disc/announcement/annList?random=0.3555675437003616"

headers = {

"Accept": "application/json, text/javascript, */*; q=0.01",

"Accept-Encoding": "gzip, deflate, br, zstd",

"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",

"Connection": "keep-alive",

"Content-Type": "application/json",

"Host": "http://reits.szse.cn",

"Origin": "https://reits.szse.cn",

"Referer": "https://reits.szse.cn/disclosure/index.html",

"Sec-Ch-Ua": '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',

"Sec-Ch-Ua-Mobile": "?0",

"Sec-Ch-Ua-Platform": '"Windows"',

"Sec-Fetch-Dest": "empty",

"Sec-Fetch-Mode": "cors",

"Sec-Fetch-Site": "same-origin",

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",

"X-Request-Type": "ajax",

"X-Requested-With": "XMLHttpRequest"

}

# 定义请求载荷

payload = {

"seDate": ["", ""],

"channelCode": ["reits-xxpl"],

"bigCategoryId": ["directions"],

"pageSize": 50,

"pageNum": 1

}

# 发送POST请求

response = requests.post(url, headers=headers, json=payload)

# 检查响应状态码

if response.status_code == 200:

print("请求成功,状态码: 200 OK")

else:

print(f"请求失败,状态码: {response.status_code}")

exit()

# 解析JSON响应

data = response.json()

# 检查是否有数据

if "data" in data and isinstance(data["data"], list):

for item in data["data"]:

# 获取PDF标题

pdf_title = item.get("title", "unknown_title")

print(f"PDF标题: {pdf_title}")

# 获取PDF URL

pdf_url = item.get("attachPath", "")

if pdf_url:

pdf_url = "https://disc.static.szse.cn" + pdf_url

print(f"PDF URL: {pdf_url}")

# 处理PDF标题中的非法字符

pdf_title = re.sub(r'[<>:"/\\|?*]', '_', pdf_title)

# 定义保存路径

save_path = f"F:\\AI自媒体内容\\AI炒股\\REITs\\{pdf_title}.pdf"

# 下载PDF文件

pdf_response = requests.get(pdf_url)

if pdf_response.status_code == 200:

with open(save_path, 'wb') as f:

f.write(pdf_response.content)

print(f"PDF文件已保存到: {save_path}")

else:

print(f"下载PDF文件失败,状态码: {pdf_response.status_code}")

# 随机暂停3-6秒

time.sleep(random.uniform(3, 6))

else:

print("没有找到数据")

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

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

相关文章

学习笔记——网络管理与运维——SNMP(概述)

一、SNMP概述 1、SNMP背景 SNMP的基本思想&#xff1a;为不同种类的设备、不同厂家生产的设备、不同型号的设备&#xff0c;定义为一个统一的接口和协议&#xff0c;使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。 通过网络&#xff0c;管理员可以管理…

flask返回的数据怎么是转义后的字符串啊

Flask在返回JSON数据时,默认情况下会对特殊字符进行转义,以确保数据能安全地在HTML页面中展示,避免XSS(跨站脚本攻击)等安全问题。如果不希望Flask对JSON响应中的字符串自动转义,通常是因为你希望在前端直接使用这些数据(例如作为JavaScript的一部分),那么需要确保数据…

主题切换之根元素CSS自定义类

要实现CSS样式的主题切换&#xff0c;可以通过在HTML中添加一个按钮来触发JavaScript事件&#xff0c;进而通过JavaScript动态修改HTML元素的class或直接切换CSS文件&#xff0c;以达到改变页面整体风格的目的。以下是实现这一功能的步骤、原理及代码示例。 原理&#xff1a; …

JavaScript 的运行

语法分析预编译解释执行 1.语法分析 语法分析是 JavaScript 引擎处理代码的第一步。 在这个阶段&#xff0c;引擎将源代码字符串分解成一个个的词素&#xff08;token&#xff09;&#xff0c;这些词素是语言中有意义的最小单元&#xff0c;如关键字、变量名、操作符等。 语…

微服务与分布式面试题

什么是RPC远程调用&#xff1f; RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。 它允许程序调用另一个地址空间&#xff08;通常是共享网络的另一台机器上&#xff09;的过程或函数&#xff0c;而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服…

深度学习中的热力图

深度学习中的热力图 热力图&#xff08;Heatmap&#xff09;在深度学习中是用于可视化数据、模型预测结果或特征的重要工具。它通过颜色的变化来表示数值的大小&#xff0c;便于直观地理解数据的分布、模型的关注区域以及特征的重要性。以下是深度学习中热力图的主要应用和特点…

Python 正则表达式语法

Python 中的正则表达式是通过 re 模块提供的&#xff0c;它支持大多数正则表达式的语法。以下是一些基本的正则表达式语法元素&#xff1a; 字符匹配: . 匹配任意单个字符&#xff0c;除了换行符。\d 匹配任意数字&#xff0c;等同于 [0-9]。\D 匹配任意非数字字符&#xff0c;…

6个免费自动写文章软件,简直好用到爆

对于创作者而言&#xff0c;创作一篇高质量的文章并非易事&#xff0c;它需要耗费大量的时间与精力去构思、组织语言、斟酌字句。灵感并非总是源源不断&#xff0c;有时我们可能会陷入思维的僵局&#xff0c;不知从何下手。而此时&#xff0c;免费自动写文章软件就如同黑暗中的…

RabbitMQ无法删除unsynchronized队列及解决办法

一、故障环境 操作系统:CentOS7 RabbitMQ:3 nodes Cluster RabbitMQ version: 3.8.12 Erlang Version:22.3 Queue Type:Mirror,with polices 二、故障表现: 2.1 管理界面队列列表中存在部分队列镜像同步状态标红: 2.2 TPS为0,无消费者,其他节点镜像未同步且无法手动…

QBrush 详解

QBrush是Qt框架中的一个类&#xff0c;它用于定义图形的填充模式。QBrush可以用于填充图形项&#xff08;如QGraphicsItem&#xff09;的形状&#xff0c;也可以用于绘制背景等。 关键特性 颜色&#xff1a;QBrush可以设置颜色&#xff0c;用于填充图形。样式&#xff1a;QBr…

C# Web控件与数据感应之模板循环输出

目录 关于模板循环输出 准备数据源 ​范例运行环境 RepeatHtml 方法 设计与实现 如何获取模板内容 getOuterHtml 方法 getInnerHtml 方法 调用示例 小结 关于模板循环输出 数据感应也即数据捆绑&#xff0c;是一种动态的&#xff0c;Web控件与数据源之间的交互&…

Web前端进国企:挑战与机遇并存

Web前端进国企&#xff1a;挑战与机遇并存 随着互联网的飞速发展&#xff0c;Web前端技术已经成为企业信息化建设的重要组成部分。对于许多热衷于前端技术的年轻人来说&#xff0c;进入国企工作既是一种挑战&#xff0c;也是一种机遇。本文将从四个方面、五个方面、六个方面和…

Qt C++ TCP服务端响应多客户端通讯

本示例使用的设备&#xff1a;WIFI无线4G网络RFID云读卡器远程网络开关物流网阅读器TTS语音-淘宝网 (taobao.com) #include "mainwindow.h" #include "ui_mainwindow.h" #include "QMessageBox" #include <QDebug> #include <exceptio…

AI与Python:探索智能化时代的编程利器

AI与Python的强大组合 Python因其简洁易学的语法和丰富的库生态&#xff0c;成为了AI开发的首选语言。无论是数据处理、机器学习还是深度学习&#xff0c;Python都能提供强大的支持。以下是几个常见的AI应用领域&#xff1a; 数据分析与处理 使用Pandas和NumPy库进行数据处理和…

pnpm : 无法加载文件 C:\Users\WTK\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。

PS D:\VUE3\vue-pure-admin-main> pnpm i pnpm : 无法加载文件 C:\Users\WTK\AppData\Roaming\npm\pnpm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?Link ID135170 中的 about_Execution_Policies。 所在…

Lexar NM620 512GB SSD PCIE3.0 X4测评

Lexar NM620 512GB SSD PCIE3.0 X4测评 官方可选容量256GB~2TB PCIE 3.0X4 支持NVME 1.4协议 CDM顺序Read速度3448MB\s CDM顺序Write速度2626MB\s CDM 4K随机Read速度465MB\s CDM 4K随机Write速度602MB\s AS SSD顺序Read速度为2855MB\s AS SSD顺序Write速度为2331MB\s AS SSD…

vue2和vue 3 的响应式原理

vue 3 响应式原理 在 Vue 3 中&#xff0c;响应式系统的核心是使用了 ES6 的 Proxy 对象来实现对数据的拦截和响应式更新。 简单的 Proxy 示例&#xff1a; const data { count: 0 }; const handler {get(target, key, receiver) {// 当访问属性时触发track(target, key);…

几款让你怦然心动的神奇工具——搜嗖工具箱

alteredqualia AlteredQualia 脑洞爆炸器网站&#xff0c;不得不说这是一个神奇的网站&#xff0c;在这个网站上你可以实现不可思议的各种操作&#xff0c;让我们对网站有了新的认知&#xff0c;因为它告诉你不是所有有趣的网站都那么花哨&#xff0c;有些网站看着外形平淡无奇…

Javascript - 请问可以new一个箭头函数吗?

&#x1f690;new操作符的步骤 在JavaScript中&#xff0c;new 操作符用于创建一个对象实例&#xff0c;具体来说&#xff0c;它会执行以下几步操作&#xff1a; 创建一个新对象&#xff1a; 创建一个新的空对象&#xff0c;且这个对象的 __proto__ 属性会被设置为构造函数的 …

LabVIEW结构体内部缺陷振动检测

结构体内部缺陷会改变其振动特性&#xff0c;通过振动分析可以检测并定位这些缺陷。本文详细分析内部缺陷对振动的影响&#xff0c;从频谱分析、时域分析和模态分析等多角度探讨基于LabVIEW的检测方法&#xff0c;提供实施步骤和注意事项&#xff0c;帮助工程师有效利用LabVIEW…