AWS Cloud9 Linux环境爬虫403错误:是否因Header配置导致?
问题分析与解决方案
403错误大概率和Header配置有关,结合你的情况,主要问题点和修复建议如下:
1. 平台标识与运行环境不匹配
你当前Header中的sec-ch-ua-platform设置为"Windows",但脚本实际运行在Linux环境的AWS Cloud9中,目标网站的反爬机制可能通过这个字段检测到环境异常,直接拒绝请求。
修复:将该字段值改为"Linux",同时更新User-Agent的系统标识:
headers = { "authority": "www.reclameaqui.com.br", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-language": "pt-BR,pt;q=0.9", "cache-control": "max-age=0", "origin": "https://www.reclameaqui.com.br", "referer": "https://www.reclameaqui.com.br/", "sec-ch-ua": '"Not.A/Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Linux"', "sec-fetch-dest": "document", "sec-fetch-mode": "navigate", "sec-fetch-site": "same-origin", "sec-fetch-user": "?1", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" }
2. 冗余Header触发反爬检测
你的Header中包含content-type: text/html; charset=utf-8,但GET请求(从代码逻辑看是获取页面内容)不需要这个字段,多余的Header会被反爬系统识别为非浏览器发起的请求。
修复:直接移除content-type字段。
3. 额外排查点
- IP风险:AWS Cloud9的IP属于云服务商公共IP段,可能已被目标网站加入爬虫黑名单。可以尝试添加代理IP,或者降低请求频率(比如每次请求后添加1-3秒随机延迟)。
- Cookie缺失:本地Windows环境可能缓存了目标网站的会话Cookie,而Cloud9是全新环境,没有Cookie导致被拒绝。可以尝试在Header中添加本地浏览器访问该网站时的Cookie值(注意Cookie有效期)。
内容的提问来源于stack exchange,提问作者Victor Resende
相关产品推荐
相关产品推荐

