命令行爬虫神器大盘点:curl/httpie/wget的高级玩法

📅 2026/6/22 5:13:24
命令行爬虫神器大盘点:curl/httpie/wget的高级玩法
前言做轻量爬虫、接口调试、全站离线抓取不必动辄启动 Python/Node 爬虫框架。Linux/macOS 原生自带三大命令行 HTTP 工具curl、wget搭配现代化可视化工具httpie覆盖接口调试、Cookie 会话、代理反爬、批量采集、整站镜像、断点续传全场景。三者定位互补curl 全能可编程、httpie 可视化调试、wget 擅长批量与全站下载。本文聚焦爬虫实战高级参数附可直接复制的生产级命令。一、curl命令行爬虫瑞士军刀自动化采集首选curl 底层基于 libcurl支持 HTTP/HTTPS/FTP/SOCKS 等 20 协议无图形依赖、极易嵌入 Shell 脚本是批量爬虫、接口压测、模拟浏览器请求的核心工具。1. 爬虫基础伪装模拟浏览器、完整请求头网站多通过 User-Agent 拦截纯 curl 请求爬虫必须完整模拟 UA、Referer、Accept 头bash运行# 完整浏览器伪装GET请求 curl -L -A Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36 \ -H Referer: https://www.baidu.com \ -H Accept-Language: zh-CN,zh;q0.9 \ https://target.com/list参数说明-A自定义 User-Agent-L自动跟随 301/302 重定向爬虫必备-H自定义任意请求头可多次叠加2. Cookie 持久会话登录态爬虫核心登录后维持会话采集分页数据两种 Cookie 操作方案方案 1保存登录 Cookie后续复用bash运行# 登录接口写入Cookie文件 curl -c cookie.txt -X POST -d usernametestpassword123456 https://target.com/login # 携带Cookie访问需要登录的页面 curl -b cookie.txt https://target.com/user/profile-c写入 Cookie-b读取 Cookie方案 2临时注入 Cookie 键值bash运行curl -H Cookie: sessionidxxxx; tokenyyyy https://target.com/api/data3. POST/JSON/ 表单 / 文件上传爬虫表单提交urlencodedbash运行curl -X POST -d page1size20 https://target.com/api/listJSON 接口爬虫最常用-d默认表单格式JSON 必须手动指定 Content-Typebash运行curl -X POST -H Content-Type: application/json -d {id:100,keyword:爬虫} https://target.com/search文件上传爬虫模拟上传附件接口bash运行curl -F upload./local.jpg https://target.com/upload4. 批量分页采集、循环爬虫脚本批量数字 URL 一键抓取1-10 页bash运行curl -O https://target.com/page/[1-10].htmlShell 循环分页爬虫带延时防封禁bash运行#!/bin/bash for page in {1..10}; do curl -L -A Chrome UA https://target.com/list?page$page -o page_$page.html sleep 1.5 # 间隔1.5秒降低风控概率 done5. 调试、状态码检测、静默批量扫描bash运行# -v 完整打印请求/响应报文排查爬虫403/502 curl -v https://target.com # 仅输出HTTP状态码批量存活检测爬虫巡检神器 curl -s -o /dev/null -w %{http_code}\n https://target.com # 参数解释-s静默、-o丢弃响应体、-w自定义输出格式6. 断点续传、限速避免服务器封禁bash运行# 断点续传大文件 curl -C - -O https://target.com/large.zip # 限速1M/s采集 curl --limit-rate 1M -O https://target.com/resource.mp4二、httpie人性化 API 调试爬虫可视化 JSON 高亮curl 参数晦涩、输出无格式化httpie 专为人工调试设计自带语法高亮、自动 JSON 格式化、简化认证语法适合 API 爬虫前期抓包调试不适合大规模 Shell 自动化。1. 极简请求语法自动格式化输出无需手动加 Content-TypeJSON 数据直接写键值bash运行# GET http GET https://httpbin.org/get # POST JSON自动识别JSON头 http POST https://target.com/api name爬虫 num:100 flag:true # : 代表数字/布尔不加引号2. 会话持久化比 curl Cookie 文件更简洁无需手动管理 cookie.txt一键保存登录会话bash运行# 登录并保存会话my_session http --sessionmy_session POST https://target.com/login usernametest password123 # 复用会话访问登录接口 http --sessionmy_session GET https://target.com/profile3. 各类认证一行搞定bash运行# Basic基础认证 http -a user:pass GET https://target.com/admin # Bearer Token http GET https://api.com/auth Authorization:Bearer xxx_token # Digest摘要认证 http --auth-typedigest -a user:pass https://target.com4 导出 curl 命令调试完一键迁移自动化调试好接口后直接生成等价 curl 语句无缝写入 Shell 爬虫脚本bash运行http --curl POST https://target.com/api nametest三、wget全站镜像、批量离线下载专用爬虫curl 侧重单次 HTTP 请求wget 核心优势是递归抓取、整站镜像、批量文件下载、后台静默下载适合离线存档、静态资源批量爬虫。1. 经典全站镜像爬虫离线完整网站一键下载全站 HTML、CSS、JS、图片自动修正链接本地访问bash运行wget --mirror --page-requisites --convert-links --wait1 https://target.com参数拆解爬虫必记--mirror / -m镜像模式递归无限深度、保留目录结构--page-requisites / -p下载页面所有依赖图片、样式、脚本--convert-links / -k下载后将页面链接转为本地相对路径--wait1请求间隔 1 秒防 IP 封禁2. 断点续传、限速、后台静默下载bash运行# 断点续传大文件 wget -c https://target.com/iso.iso # 限速300k不占满带宽 wget --limit-rate300k https://target.com/video.mp4 # 后台下载日志输出wget-log wget -b -o download.log https://target.com/big.zip3. 批量 URL 采集从文本读取链接批量抓取urls.txt 每行一条链接一键批量下载所有页面 / 资源bash运行wget -i urls.txt -P ./downloads # -P 指定文件保存目录4. 爬虫过滤控制只抓指定后缀、排除目录bash运行# 仅下载jpg/png图片 wget --accept jpg,png --mirror https://target.com/gallery # 排除/admin目录不抓取 wget --exclude-directories/admin,/login https://target.com5. Cookie 会话、UA 伪装、代理bash运行# 携带Cookie登录后抓取 wget --headerCookie: sessionxxx https://target.com/private # 自定义UA wget -U Chrome UA https://target.com # HTTP代理 wget -e http_proxyhttp://127.0.0.1:7890 https://httpbin.org/ip四、curl /httpie/wget 爬虫场景选型对照表表格工具核心爬虫优势适用场景不推荐场景curl轻量、全协议、可嵌入 Shell、参数灵活批量自动化爬虫、分页循环、接口脚本、代理反爬、CI 采集人工调试 API、需要直观格式化 JSONhttpie语法简单、彩色格式化、会话自动管理API 接口调试、临时测试登录态、快速生成 curl 脚本大规模批量递归全站抓取、无环境安装依赖场景wget递归镜像、批量文件、目录结构化下载整站离线存档、静态资源批量爬取、后台长任务下载复杂 JSON 接口交互、精细自定义请求头逻辑五、爬虫实战避坑最佳实践请求间隔必加 sleep/wait高频连续请求极易触发 403/IP 封禁curl 循环 sleep、wget --wait 强制延时。完整 UAReferer 伪装原生 curl/wget 默认 UA 特征明显是网站基础拦截手段。会话持久化优先登录类爬虫统一使用 Cookie 文件 /httpie 会话避免重复登录。代理轮换脚本搭配 curl大批量采集时用 Shell 切换多代理 IP 降低封禁风险。限速保护服务器带宽敏感场景添加 --limit-rate防止触发流量风控。区分工具定位自动化脚本用 curl、人工调试用 httpie、离线整站下载用 wget。结语不需要重型爬虫框架仅靠系统自带三大命令行工具就能完成绝大多数轻量数据采集需求。curl 负责自动化流水线httpie 负责快速调试接口wget 负责全站资源离线抓取三者组合覆盖 90% 命令行爬虫场景。掌握文中高级参数可直接编写无依赖、跨平台的轻量化采集脚本。