如何通过选择日期从指定链接批量下载所有文件?
关于NSE衍生品报告下载的实现方案
两种方式都可行,但适用场景不同
1. 用requests实现的可能性
可以实现,但需要先做接口分析工作:
- 打开浏览器开发者工具(F12),抓包追踪几个关键请求:日期提交后加载报告列表的接口、多文件下载的接口
- 复制请求里的
Cookie、User-Agent等关键头信息,这些是NSE网站反爬验证的必要内容 - 构造请求参数:把指定日期按接口要求的格式传入,还要带上“全选”对应的所有报告ID参数
- 注意:如果多文件下载是前端打包ZIP,可能得自己批量下载单个文件再手动打包,或者找到后端的打包接口
2. 用selenium更省心直接
这个页面的交互逻辑(选日期、勾全选、点下载)都是前端触发的,selenium可以直接模拟用户操作,不用深挖接口细节:
- 启动浏览器打开目标链接
- 定位日期输入框,填完日期触发查询
- 找到“全选报告”复选框点击勾选
- 点击“多文件下载”按钮,等待文件下载完成
- 记得用
WebDriverWait等待元素加载,避免页面没加载完就操作报错
总结
如果不想花时间分析接口,直接用selenium最快;如果想做无界面的批量脚本,可以花点时间抓包用requests实现。
内容的提问来源于stack exchange,提问作者Pravat
相关产品推荐
相关产品推荐

