如何自动化批量下载生成的PDF文件?
解决批量获取政府数据库PDF的方案
针对你遇到的批量取PDF的麻烦,我分两个核心部分给你落地方案,全程不用手动点几百次~
一、批量触发PDF链接的书签脚本
你完全可以用书签脚本来自动遍历页面上的PDF链接并触发,我已经帮你写好现成代码,直接用就行:
步骤1:制作书签脚本
- 在你常用的浏览器(比如Safari)里,新建一个书签(Safari可点击顶部菜单栏「书签」→「添加书签」)
- 书签名称随便填,比如「批量拉PDF」,然后把「URL」替换成下面的代码:
javascript:(function(){let links = document.querySelectorAll('a[href^="javascript:viajeros("]');let delay = 2000; // 每次触发间隔2秒,可按需调整links.forEach((link, index)=>{setTimeout(()=>{let id = link.href.match(/viajeros\("(\d+)"\)/)[1];viajeros(id);}, index*delay);})})();
脚本说明
- 这段代码会自动抓取页面上所有调用
viajeros函数的链接 - 提取每个链接里的ID参数,按顺序调用官方的
viajeros函数,每次间隔2秒(避免浏览器卡死,你可以把2000改成其他毫秒数,比如1000就是1秒) - 因为是在当前登录页面执行,自动携带了cookie和referer,不会触发对方的校验机制
二、自动保存PDF,不用手动点标签页
现在解决第二个痛点:PDF默认在新标签页打开,需要手动保存。不同浏览器有对应的设置,针对你常用的工具给你方案:
1. Safari(MacOS)
- 打开Safari偏好设置(快捷键
Cmd+,) - 切换到「网站」标签,左侧列表找到「PDF」
- 把「当访问PDF时」的选项改成「下载文件」
- 之后所有触发的PDF都会自动下载到你设置的默认文件夹
2. Firefox
- 打开Firefox设置(右上角菜单→「设置」)
- 在「常规」选项卡的「文件和应用程序」区域,找到「PDF文件」
- 选择「保存文件」并确认,后续PDF会自动下载
3. Opera
- 打开Opera设置(左上角菜单→「设置」)
- 搜索「PDF」,找到「PDF文档」选项
- 勾选「下载PDF文件而不是在Opera中打开它们」
三、额外优化:避免打开大量标签页(可选)
如果觉得几百个标签页太占资源,可以修改脚本,直接构造链接触发下载,不打开新标签页。我们已经知道viajeros函数的逻辑,所以可以改成这样:
javascript:(function(){let links = document.querySelectorAll('a[href^="javascript:viajeros("]');let idm = document.forms[0].idioma.value;let delay = 2000;links.forEach((link, index)=>{setTimeout(()=>{let id = link.href.match(/viajeros\("(\d+)"\)/)[1];let url = `parteViajeros.do?lang=${idm}&id_fichero=${id}`;let a = document.createElement('a');a.href = url;a.download = `gov_pdf_${id}.pdf`; // 自定义文件名,方便区分a.style.display = 'none';document.body.appendChild(a);a.click();document.body.removeChild(a);}, index*delay);})})();
这个脚本会直接触发PDF下载,不会弹出新标签页,更省浏览器资源~
注意事项
- 确保你已经登录政府数据库系统,且当前页面就是包含PDF链接的页面,再点击书签脚本
- 如果脚本不执行,检查浏览器是否允许运行书签脚本:Safari需要在「偏好设置」→「高级」里勾选「显示开发菜单」,然后在「开发」菜单确认「禁用JavaScript」是未勾选状态
内容的提问来源于stack exchange,提问作者WGroleau
相关产品推荐
相关产品推荐

