Python实现:一键下载某公司2013 - 2023年完好PDF年度报告并保存至桌面新文件夹
要实现这个任务,你需要使用Python中的几个库,包括`requests`和`os`。以下是一个示例代码,假设你已经知道该公司官网上年度报告的URL模式。如果URL模式不是固定的,你可能需要先爬取网页来获取这些URL。 首先,确保你已经安装了所需的库: ```bash pip install requests ``` 然后,编写以下Python代码: ```python import os import requests # 定义公司官网的URL模式 base_url = "https://example.com/annual-reports/{year}.pdf" # 定义保存路径 save_path = os.path.join(os.path.expanduser("~"), "Desktop", "Annual_Reports") # 创建保存目录 if not os.path.exists(save_path): os.makedirs(save_path) # 下载2013年到2023年的年度报告 for year in range(2013, 2024): url = base_url.format(year=year) file_name = f"{year}.pdf" file_path = os.path.join(save_path, file_name) try: response = requests.get(url) response.raise_for_status() # 检查请求是否成功 with open(file_path, 'wb') as file: file.write(response.content) print(f"成功下载 {file_name}") except requests.exceptions.RequestException as e: print(f"下载 {file_name} 失败: {e}") print("下载完成") ``` 代码说明: 1. 导入必要的库:`os`用于处理文件路径,`requests`用于发送HTTP请求。 2. 定义公司官网的URL模式:假设URL模式是`https://example.com/annual-reports/{year}.pdf`,你需要根据实际情况进行修改。 3. 定义保存路径:使用`os.path.expanduser("~")`获取用户的主目录,然后拼接出桌面路径和新文件夹路径。 4. 创建保存目录:如果目标目录不存在,则创建它。 5. 下载2013年到2023年的年度报告: - 构建每个年度报告的URL。 - 发送HTTP GET请求获取文件内容。 - 将文件内容写入本地文件。 - 捕获并处理请求异常,确保程序不会因单个文件下载失败而中断。 注意事项: - 确保你有权限访问这些URL,并且这些URL确实存在。 - 如果URL模式不固定,你可能需要使用爬虫库(如`BeautifulSoup`或`Scrapy`)来动态获取这些URL。 - 如果文件较大,可以考虑使用流式下载以节省内存。 希望这段代码能帮助你完成任务!如果有任何问题,请随时提问。 ######[AI写代码神器 | 594点数解答 | 2024-11-08 17:56:59]
- Python 助力 Q 老师整理 .in 和 .out 编程测试文件(字节豆包 | 317点数解答 | 2025-12-20 20:54:22)77
- 解决 consoleapplication40.cpp 中 buildtree 模板参数推导失败错误的方法(字节豆包 | 138点数解答 | 2024-11-10 23:42:06)253
- PDF.js 动态导入模块失败:原因剖析与解决方案全揭秘(字节豆包 | 573点数解答 | 2025-07-30 16:04:03)148
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)498
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)383
- PHP 开发必知:操作目录的 10 个常用函数全解析(百度文心 | 420点数解答 | 2023-11-09 17:58:57)281
- Python在Linux下用openpyxl库实现Excel数据跨文件转移及异常处理(字节豆包 | 429点数解答 | 2025-01-07 19:22:42)186
- Python 在 Linux 下用 openpyxl 实现 Excel 单元格值转移及错误处理(字节豆包 | 240点数解答 | 2025-01-09 17:09:26)199
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)451
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)443
- 15 列信息揭秘:教职工基本信息数据大起底(字节豆包 | 44点数解答 | 2024-11-21 08:18:34)228
- 15 列信息揭秘:教职工基本信息大公开! (字节豆包 | 15点数解答 | 2024-11-21 08:26:12)224