python下载pdf

要下载 PDF 文件并将其保存到本地文件夹中,你可以使用 Python 的 requests 库来发送 HTTP 请求,并使用 os 和 io 库来处理文件操作。以下是一个示例代码,展示了如何从给定的 URL 下载 PDF 文件并将其保存到本地 data 文件夹中:

python 复制代码
import os
import requests
from io import BytesIO

# 定义下载链接和保存路径
url = 'https://web.aacei.org/docs/default-source/rps/10S-90.pdf'
save_folder = 'data'
filename = '10S-90.pdf'
save_path = os.path.join(save_folder, filename)

# 确保保存文件夹存在
if not os.path.exists(save_folder):
    os.makedirs(save_folder)

# 发送 HTTP GET 请求获取 PDF 文件
response = requests.get(url)

# 检查请求是否成功
if response.status_code == 200:
    # 将响应内容保存到文件中
    with open(save_path, 'wb') as file:
        file.write(response.content)
    print(f"PDF 文件已成功保存到 {save_path}")
else:
    print(f"下载失败,状态码: {response.status_code}")

以下是代码的详细步骤:

  1. 导入所需的库:

    • os 用于处理文件和目录。
    • requests 用于发送 HTTP 请求。
    • io.BytesIO 用于处理二进制数据(本例中未直接使用,但可以在处理更复杂的二进制文件时使用)。
  2. 定义下载链接和保存路径:

    • url 是要下载的 PDF 文件的链接。
    • save_folder 是保存文件的本地文件夹。
    • filename 是要保存的 PDF 文件名。
    • save_path 是文件的完整保存路径。
  3. 确保保存文件夹存在:

    • 使用 os.path.exists 检查文件夹是否存在。
    • 如果不存在,使用 os.makedirs 创建文件夹。
  4. 发送 HTTP GET 请求:

    • 使用 requests.get(url) 发送 GET 请求获取 PDF 文件。
  5. 检查请求是否成功:

    • 如果状态码为 200,表示请求成功。
    • 使用 with open(save_path, 'wb') as file 打开文件进行二进制写入。
    • 使用 file.write(response.content) 将响应内容写入文件。
  6. 打印成功或失败信息:

    • 如果下载成功,打印成功信息。
    • 如果下载失败,打印失败信息和状态码。

运行这段代码后,PDF 文件将被下载并保存到本地 data 文件夹中。

相关推荐
如若1239 分钟前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
IvorySQL14 分钟前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶2 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河2 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新2 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
宇宙无敌暴龙战士6662 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊2 小时前
MySQL 的四种隔离级别
java·数据库·mysql
薛定谔的猫-菜鸟程序员2 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
WORLDPO92262 小时前
QTE-020-01-L/F/C-D-A-K-TR_实物_数据手册PDF_国产替代
pdf
say_fall3 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++