解决请求https://clutch.co/sitemap.xml时的403 Forbidden错误
解决请求https://clutch.co/sitemap.xml返回403 Forbidden的问题
核心原因
该网站部署了Cloudflare反爬机制,你的请求被识别为非正常人类访问。尤其是cf_clearance Cookie与当前IP、User-Agent绑定,复制的旧Cookie已过期或不匹配当前环境,无法通过验证。
解决方案
方法1:使用cloudscraper自动处理Cloudflare验证
cloudscraper是专门针对Cloudflare反爬的工具库,能自动完成验证流程:
- 安装库:
pip install cloudscraper
- 替换requests调用cloudscraper:
import cloudscraper # 创建scraper实例 scraper = cloudscraper.create_scraper() # 发送请求 response = scraper.get('https://clutch.co/sitemap.xml') # 验证结果 print(f"状态码: {response.status_code}") print(f"响应内容预览:\n{response.text[:500]}")
方法2:手动获取有效Cookie
如果不想依赖第三方库,可以手动获取有效的cf_clearance Cookie:
- 用浏览器打开
https://clutch.co/sitemap.xml,完成Cloudflare的人机验证(如滑块验证) - 按F12打开开发者工具,切换到「Network」标签,刷新页面后找到对应请求,复制其中的
cf_clearanceCookie值(注意Cookie有过期时间,过期后需重新获取) - 精简请求头,只保留必要字段,避免多余字段触发反爬:
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'Accept': 'application/xml, text/xml, */*; q=0.01' } cookies = { 'cf_clearance': '你刚复制的有效cf_clearance值', } response = requests.get('https://clutch.co/sitemap.xml', headers=headers, cookies=cookies) print(f"状态码: {response.status_code}")
注意事项
- 不要高频次发起请求,否则可能被网站封禁IP
- 先查看网站的
robots.txt,确认是否允许爬取sitemap文件 - 如果上述方法失效,可尝试用Selenium等自动化工具模拟真实浏览器操作,但需注意规避反爬检测
内容的提问来源于stack exchange,提问作者Mohit Aswani
相关产品推荐
相关产品推荐

