You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站屏蔽wget/curl/lynx时,自动化下载文件的解决方案咨询

可行的自动化下载方案

1. 无头浏览器工具(推荐)

无头服务器上优先用支持完整JS渲染的无头浏览器工具,这类工具能模拟真实浏览器环境,绕过大多数基于JS的反爬验证。

Puppeteer(Node.js)

  1. 先安装依赖:
npm install puppeteer
  1. 编写下载脚本:
const puppeteer = require('puppeteer');
const fs = require('fs');

(async () => {
  // 启动无头浏览器
  const browser = await puppeteer.launch({ headless: 'new', args: ['--no-sandbox'] });
  const page = await browser.newPage();

  // 若需要预设Cookie,可添加以下代码(替换为实际Cookie信息)
  // await page.setCookie({
  //   name: 'your_cookie_key',
  //   value: 'your_cookie_value',
  //   domain: '目标网站域名'
  // });

  // 访问目标文件URL,等待网络请求稳定
  await page.goto('目标文件的URL', { waitUntil: 'networkidle2' });

  // 获取文件内容并保存
  const fileResponse = await page.goto('目标文件的URL');
  const fileBuffer = await fileResponse.buffer();
  fs.writeFileSync('保存的文件名.ext', fileBuffer);

  await browser.close();
})();

运行脚本:node download-script.js

Playwright(多语言支持)

Playwright支持Node.js、Python、Java等,用法和Puppeteer类似,优势是支持更多浏览器内核,可按需选择。

2. 命令行调用无头Chromium

如果不想写脚本,可直接用chromium-browser的无头模式下载:

chromium-browser --headless=new --disable-gpu --no-sandbox \
  --download.default_directory=/你要保存的路径 \
  --download.prompt_for_download=false \
  "目标文件的URL"

若需要携带Cookie,可先从浏览器导出Cookie文件,用--load-storage=/path/to/cookie-file参数加载。

3. 手动模拟经过JS验证的请求

如果网站的JS逻辑不复杂,可抓包分析真实请求参数:

  1. 用正常浏览器打开目标页面,打开开发者工具的「Network」标签
  2. 触发文件下载,找到对应的请求,复制完整的请求头、Cookie和参数
  3. 用curl或wget模拟该请求,示例:
curl -O \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" \
  -H "Referer: 目标页面的URL" \
  -b "cookie_key1=value1; cookie_key2=value2" \
  "真实的文件下载URL"

注意:若网站有动态生成的签名或token,这个方法可能需要频繁更新参数,适合简单场景。

4. 苹果设备的替代方案

如果苹果设备可配合使用,不用复杂的AppleScript,试试这两种方式:

  • 快捷指令+命令行:创建一个接收URL输入并执行下载的快捷指令,然后在终端触发:
shortcuts run "你的快捷指令名称" --input "目标文件的URL"
  • 简单osascript脚本:
tell application "Safari"
    activate
    set newTab to make new tab at end of tabs of window 1 with properties {URL:"目标文件的URL"}
    set current tab of window 1 to newTab
    delay 8 -- 根据文件大小调整等待时间
end tell

运行脚本:osascript download.scpt,注意设备需处于解锁状态。

内容的提问来源于stack exchange,提问作者Seamus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:18:14