使用curl保存网站Cookie失败的技术求助
1. 缺少浏览器标识的User-Agent头部
很多网站会校验请求的User-Agent字段,默认curl的标识(curl/[版本号])会被识别为非浏览器请求,服务器可能不会返回Cookie。heise.de就属于这类网站。
解决方法:添加模拟浏览器的User-Agent参数,比如:
curl -L -c cookie.txt -b cookie.txt -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" https://www.heise.de
2. 请求未使用完整HTTPS地址
你之前的命令用了www.heise.de,curl会先尝试HTTP请求,再跳转HTTPS,这个过程中服务器可能不会在HTTP阶段设置Cookie。直接指定完整HTTPS地址可以避免这个问题。
3. 旧版curl的兼容性问题
部分旧版本curl在处理Cookie跳转、HTTPS协议的Cookie设置上存在bug,先检查你的curl版本:
curl --version
如果版本较老,建议更新到最新稳定版。
4. 验证排查步骤
执行修改后的命令后,查看cookie.txt内容确认:
cat cookie.txt
如果还是没有Cookie,添加-v参数查看详细请求响应,重点找服务器返回的Set-Cookie:字段:
curl -v -L -c cookie.txt -b cookie.txt -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" https://www.heise.de
如果响应里没有Set-Cookie:,说明服务器仍未识别你的请求;如果有该字段但未写入文件,再排查curl版本或当前目录写入权限(你已生成文件,权限问题概率极低)。
内容的提问来源于stack exchange,提问作者SirGamsay
相关产品推荐
相关产品推荐

