职业PDF标准 Python 下载器-CSDN

目的

下载技能人才评价网 - 职业技能标准查询系统 - PDF 打包下载

使用文件

a.json

代码解析

import base64
import requests
import json
import os
import time# 读取JSON文件
with open('a.json', 'r', encoding='utf-8') as f:data = json.load(f)
# 从名为 'a.json' 的文件中读取 JSON 数据,并将其存储在 'data' 变量中# 创建存储文件的文件夹
output_folder = 'pdf_files'
if not os.path.exists(output_folder):os.makedirs(output_folder)
# 如果不存在名为 'pdf_files' 的文件夹,则创建该文件夹# 遍历JSON文件中的每一行
for row in data['rows']:code = row['code']file_name = row['fileName']attachment_path = row['attachment']# 从当前 'row' 中提取 'code'、'fileName' 和 'attachment' 的值# 发送请求获取PDF文件内容headers = {"Content-Type": "application/x-www-form-urlencoded",}resp = requests.post("http://biaozhun.osta.org.cn/api/v1/profession/detail",headers=headers,data=f"code={code}",)# 使用 POST 方法向指定的 URL 发送请求,携带 'code' 作为数据参数,以获取对应的 PDF 文件内容pdf_data = json.loads(resp.content)# 将响应内容解析为 JSON 格式并存储在 'pdf_data' 变量中# 检查是否存在 'data' 键if 'data' in pdf_data:pdf_content = pdf_data['data']# 如果 'pdf_data' 包含 'data' 键,则提取其对应的值作为 PDF 文件内容# 处理文件名中的特殊字符safe_file_name = file_name.encode('utf-8').decode('utf-8')file_path = os.path.join(output_folder, safe_file_name)# 处理文件名以确保其安全,并构建文件的完整路径# 将PDF文件内容保存到指定文件夹中with open(file_path, "wb") as f:f.write(base64.b64decode(pdf_content))# 将 PDF 文件内容解码后写入文件print(f"Saved {file_name} to {file_path}")else:print(f"Error: 'data' key not found in response for code {code}. Response: {pdf_data}")# 如果 'data' 键不存在,则打印错误信息# 每个请求间隔5秒time.sleep(5)# 在每个请求之间暂停 5 秒
  1. 读取JSON文件
with open('a.json', 'r', encoding='utf-8') as f:data = json.load(f)
  • 作用: 从 a.json 文件中读取 JSON 数据并存储在 data 变量中。
  • API: json.load() 将文件对象读取为 JSON 格式。
  1. 创建存储文件的文件夹
output_folder = 'pdf_files'
if not os.path.exists(output_folder):os.makedirs(output_folder)
  • 作用: 检查是否存在名为 ‘pdf_files’ 文件夹,如果不存在则创建。
  • API:
    • os.path.exists() 检查文件路径是否存在。
    • os.makedirs() 创建目录。
  1. 遍历JSON文件中的每一行
for row in data['rows']:code = row['code']file_name = row['fileName']attachment_path = row['attachment']
  • 作用: 遍历 JSON 数据中的每一行,并提取 codefileNameattachment_path
  1. 发送请求获取PDF文件内容
headers = {"Content-Type": "application/x-www-form-urlencoded",
}
resp = requests.post("http://biaozhun.osta.org.cn/api/v1/profession/detail",headers=headers,data=f"code={code}",
)
pdf_data = json.loads(resp.content)
  • 作用: 发送 POST 请求到指定 URL 以获取 PDF 文件内容。
  • API:
    • requests.post() 发送 HTTP POST 请求。
    • json.loads() 将响应内容解析为 JSON。
  1. 检查是否存在 ‘data’ 键
if 'data' in pdf_data:pdf_content = pdf_data['data']
  • 作用: 检查响应 JSON 中是否存在 ‘data’ 键,如果存在则提取其内容。
  1. 处理文件名中的特殊字符和构建文件路径
safe_file_name = file_name.encode('utf-8').decode('utf-8')
file_path = os.path.join(output_folder, safe_file_name)
  • 作用: 处理文件名以确保其安全,并构建完整文件路径。
  • API:
    • str.encode() 编码字符串。
    • str.decode() 解码字符串。
    • os.path.join() 拼接路径。
  1. 将PDF文件内容保存到指定文件夹中
with open(file_path, "wb") as f:f.write(base64.b64decode(pdf_content))
  • 作用: 将解码后的 PDF 内容写入文件。
  • API:
    • base64.b64decode() 进行 Base64 解码。
    • open() 打开文件。
    • file.write() 写入文件。
  1. 打印成功或错误信息
print(f"Saved {file_name} to {file_path}")
else:print(f"Error: 'data' key not found in response for code {code}. Response: {pdf_data}")
  1. 每个请求间隔5秒
time.sleep(5)
  • 作用: 在每个请求之间暂停 5 秒。
  • API: time.sleep() 暂停执行。

文件存储

在这里插入图片描述

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

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

相关文章

四川蔚澜时代电子商务有限公司领航抖音电商新纪元

在数字化浪潮的推动下,电子商务已成为现代商业发展的重要引擎。四川蔚澜时代电子商务有限公司,凭借对市场的敏锐洞察力和对技术的执着追求,成功在抖音电商领域崭露头角,成为众多电商创业者值得信赖的合作伙伴。 抖音,…

关系数据库:mysql

使用 mysqladmin 删除数据库 关系型数据库的术语: 数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。行:一行(元组…

idea双击没有反应,打不开

问题描述 Error opening zip file or JAR manifest missing : /home/IntelliJ-IDEA/bin/jetbrains-agent.jar解决方案

前端路由手写Hash和History两种模式

文章目录 1. Hash模式:简洁而广泛适用2. History模式:更自然的用户体验3. 结论 在现代Web开发中,单页面应用(Single Page Application,简称SPA)因其流畅的用户体验和高效的页面交互能力而备受青睐。前端路由…

PyTorch人脸识别

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 一套基本的人脸识别系统主要包含三部分:检测器、识别器和分类器,流程架构如图11-3所示: 图11-5 检测器负责检测图片中的人脸,再将检测出来的人脸感兴趣区域(Reg…

第二届大数据、计算智能与应用国际会议(BDCIA2024)

会议日期:2024年11月15-17日 会议地点:中国-湖北省-黄冈市 主办单位:黄冈师范学院 【大会主席】 【主讲嘉宾】 大会邀请到来自美国、英国、加拿大、新加坡、意大利、越南等10余位领域内学术大咖作主题报告,并与参会人员互动交…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【查询密钥是否存在(ArkTS)】

查询密钥是否存在(ArkTS) HUKS提供了接口供应用查询指定密钥是否存在。 开发步骤 指定密钥别名keyAlias,密钥别名最大长度为64字节。初始化密钥属性集。用于查询时指定密钥的属性TAG,比如查询的密钥范围(全量/单个),当查询单个时&#xff…

分布式IO系统BL201 Profinet耦合器

BL201耦合器是一个数据采集和控制系统,基于强大的32 位微处理器设计,采用Linux操作系统,是一种模块化的分布式I/O系统。该系统由3部分组成:现场总线耦合器和各种类型的(数字和模拟信号以及特殊功能)I/O模块…

Ubuntu18 中JDK的安装

文章目录 一、背景说明二、获取安装包三、安装JDK3.1 上传安装包3.2 复制和解压3.3 环境变量的设置3.4 验证安装 四、问题列表4.1 .bashrc文件在哪里?.bashrc是什么?4.2 为什么使用rz上传安装包时会报: 传输失败? 五、总结 一、背…

解决RuntimeError: Couldn‘t load custom C++ ops. This can happen if your PyTorch

问题描述 刚下好yolov8的代码,想测一下能否成果,果然没成功,报错如下 RuntimeError: Couldnt load custom C ops. This can happen if your PyTorch and torchvision versions are incompatible, or if you had errors while compiling tor…

kettle从入门到精通 第七五课 ETL之kettle血缘,数据血缘

在了解kettle血缘之前,咱们先来了解下什么是数据血缘? 1、数据血缘定义(来自gpt) 数据血缘(Data Lineage)是指在数据管理和数据分析中追踪数据的源头、流向和处理过程的能力。具体来说,数据血…

《昇思25天学习打卡营第21天|基于 MindSpore 实现 BERT 对话情绪识别》

#学习打卡第21天# 1. BERT 模型 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型,是基于Transformer中的Encoder并加上双向…

org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factory

org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factory POI的问题 在操作Excel时,出现这个问题是因为缺少了poi-ooxml-schema jar包,并且与poi的jar包版本一致

昇思25天学习打卡营第21天 | 基于MindSpore的红酒分类实验

内容简介 本实验介绍了使用MindSpore框架实现K近邻算法(KNN)对红酒数据集进行分类的全过程。通过数据读取、预处理、模型构建与预测,展示了KNN算法在红酒数据集上的应用。实验中详细解释了KNN的原理、距离度量方式及其在分类问题中的应用&…

PyTorch张量创建和随机数生成器算法

文章目录 1、基本创建方式1.1、根据已有数据创建张量1.2、根据已有数据创建张量1.3、根据已有数据创建张量 2、创建线性和随机张量2.1、创建线性空间的张量2.2、创建随机张量2.3、什么是随机数种子2.4、initial_seed()和manual_seed() 3、创建01张量3.1、全0张量3.2、全1张量3.…

【Java18】初始化块

初始化块和构造器、成员变量、成员方法一起,是唯四能在类中出现的成员。 初始化块的作用和构造器类似,目的是对对象进行初始化操作;一个类中可以有多个初始化块;初始化块只有两种修饰方式:static和default。用static修…

nginx生成自签名SSL证书配置HTTPS

一、安装nginx nginx必须有"--with-http_ssl_module"模块 查看nginx安装的模块: rootecs-7398:/usr/local/nginx# cd /usr/local/nginx/ rootecs-7398:/usr/local/nginx# ./sbin/nginx -V nginx version: nginx/1.20.2 built by gcc 9.4.0 (Ubuntu 9.4.0…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写,它是Android SDK 中的一个调试工具,允许开发者通过命令行界面与设备进行交互,执行各种操作,如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

我的GeneFace++部署与运行之旅

文章目录 引言项目背景概述重要性分析结论 环境准备1. 安装CUDA2. 安装Python依赖3. 准备3DMM模型(BFM2009)及其他数据 运行官方 Demo训练自己的视频数据准备训练推理测试 遇到的问题与解决方案问题一:cuda 安装完发现版本不对问题二&#xf…

C语言 底层逻辑详细阐述结构体 #结构体的声明 #结构体的初始化 #结构体成员访问 #结构体传参

文章目录 前言 一、结构体的基础知识 二、结构体的初始化 1、结构体类型声明: 2、结构体成员的类型 3、结构体变量的初始化: 三、结构体成员访问 四、结构体传参 总结 前言 基于自我理解的角度来讲结构体; 一、结构体的基础知识 结构是一些…