如何用Python从URL下载关联PDF?批量下载及s3fs桶名疑问
批量下载NSE公开PDF文件的方案
你完全没必要用s3fs,这些都是NSE对外公开的静态文件,直接通过普通的HTTP请求就能下载,根本不用纠结S3存储桶的问题。下面给你两种简单的批量下载方法:
方法一:Python脚本批量下载
- 先安装依赖库:
pip install requests - 复制下面的脚本,替换成你的URL列表,运行即可:
import os import requests # 替换成你自己的URL数组 url_list = [ 'https://static.nseindia.com/s3fs-public/2022-09/ind_prs01092022.pdf', # 在这里添加更多需要下载的URL ] # 设置本地保存的文件夹,不存在会自动创建 save_folder = './nse_downloads' os.makedirs(save_folder, exist_ok=True) for url in url_list: # 从URL里提取文件名 file_name = url.split('/')[-1] save_path = os.path.join(save_folder, file_name) try: # 发送请求下载文件 response = requests.get(url, stream=True) response.raise_for_status() # 检查请求是否成功 # 写入本地文件 with open(save_path, 'wb') as file: for chunk in response.iter_content(chunk_size=8192): file.write(chunk) print(f"✅ 成功下载:{file_name}") except Exception as error: print(f"❌ 下载失败 {url}:{str(error)}")
方法二:命令行批量下载(适合Linux/macOS/WSL)
- 新建一个文本文件
urls.txt,把所有要下载的URL逐行放进去 - 打开终端,执行下面的命令,文件会自动下载到
nse_downloads文件夹:
mkdir -p nse_downloads && cd nse_downloads && xargs -n 1 curl -O < ../urls.txt
- 说明:
-O参数让curl保留原文件名,xargs负责读取每行URL并执行下载命令。
为什么不用s3fs?
这些文件是NSE通过CDN对外提供的公开静态资源,不需要通过AWS S3客户端访问,直接用HTTP下载更简单高效,还不用配置任何AWS凭证。
内容的提问来源于stack exchange,提问作者wanderingtrader
相关产品推荐
相关产品推荐

