Adidas爬虫被拦截问题求助:如何突破访问限制?
解决Adidas爬虫被安全验证拦截的方案
补全请求头信息:只设置User-Agent远远不够,Adidas的反爬机制会校验更多请求头字段。你得加上
Accept、Accept-Language、Referer这些浏览器默认携带的字段,模拟真实用户的请求特征。示例代码:headers = { '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', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Referer': 'https://www.adidas.com.cn/' }维持会话Cookie:Adidas会用Cookie跟踪会话状态,直接请求产品页容易被拦截。用
requests.Session()先访问Adidas首页,让服务器生成合法的会话Cookie,再请求目标产品页,示例:session = requests.Session() # 先访问首页获取会话Cookie session.get('https://www.adidas.com.cn/', headers=headers) # 再请求目标产品页面 response = session.get('你的目标产品URL', headers=headers)用浏览器渲染工具绕过JS验证:如果返回的安全验证页面依赖JavaScript生成,纯HTTP请求库requests无法处理。换成
selenium或者playwright模拟真实浏览器,它们能自动执行JS,处理动态验证逻辑。简单示例(selenium):from selenium import webdriver from selenium.webdriver.chrome.options import Options import time options = Options() # 无头模式,不弹出浏览器窗口 options.add_argument('--headless=new') options.add_argument('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') driver = webdriver.Chrome(options=options) driver.get('你的目标产品URL') # 给页面加载留缓冲时间 time.sleep(2) page_source = driver.page_source # 后续解析页面使用page_source driver.quit()添加随机请求延迟:短时间内频繁请求会被标记为爬虫。在每次请求之间添加1-3秒的随机延迟,模拟人类浏览间隔,用
time.sleep(random.uniform(1, 3))实现即可。处理验证码(如果触发):若页面出现验证码,个人项目里可以先尝试手动输入验证,或者使用免费的验证码识别工具;但优先通过前面的方法避免触发验证码,毕竟识别验证码成本高且不稳定。
内容的提问来源于stack exchange,提问作者Sakratex
相关产品推荐
相关产品推荐

