影刀RPA 网页反爬策略的识别与应对方法
影刀RPA 网页反爬策略的识别与应对方法作者林焱什么情况用这个流程跑着跑着突然就采集不到数据了——要么返回空列表、要么弹出验证码、要么直接跳转到错误页面。你不是被人为封禁了是被网站的反爬系统给拦下来了。反爬系统检测的不是你是不是机器人而是你的行为像不像人。频率太高、请求规律太明显、缺少正常的浏览器特征——这些都是被识别出来的原因。这篇文章教你识别常见的反爬信号并给出对应的躲过策略。怎么做第一步识别反爬信号信号现象可能性验证码弹窗突然出现滑块/点选验证码99%是反爬数据返回为空选择器没问题但get不到数据数据被接口拦截HTTP 403/429禁止访问/请求过多IP被限拼多多店群自动化上架方案| 页面跳转 | 自动跳到验证页面或错误页 | 检测到自动化 || 元素存在找不到 | F12能看到但Selenium报不存在 | 元素被隐藏或延迟 || 提示请刷新 | 弹出网络异常请刷新 | 前端防爬提示 |第二步反反爬——从简单到激进基础手段低风险# 1. 随机延迟importrandom,time time.sleep(random.uniform(1,3))# 2. 请求头伪装fromselenium.webdriver.chrome.optionsimportOptions optionsOptions()options.add_argument(--user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36)options.add_argument(--disable-blink-featuresAutomationControlled)# 3. 隐藏webdriver特征driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument,{source: Object.defineProperty(navigator, webdriver, {get: () undefined}); window.chrome {runtime: {}}; })中级手段# 4. 模拟鼠标轨迹不只是瞬间移动importpyautoguidefhuman_move(target_x,target_y):current_x,current_ypyautogui.position()stepsrandom.randint(10,25)foriinrange(steps):progress(i1)/steps# 贝塞尔曲线模拟cxcurrent_x(target_x-current_x)*progressrandom.uniform(-3,3)cycurrent_y(target_y-current_y)*progressrandom.uniform(-3,3)pyautogui.moveTo(cx,cy,durationrandom.uniform(0.01,0.05))# 5. 随机滚动driver.execute_script(fwindow.scrollBy(0,{random.randint(100,500)});)time.sleep(random.uniform(1,2))# 6. Cookie复用——减少登录次数# 把登录后的Cookie保存下来下次直接用高级手段# 7. IP轮换代理池proxies[http://proxy1:8080,http://proxy2:8080]proxyrandom.choice(proxies)# 8. 多账号轮换# 每次采集随机选一个账号的Cookie分摊请求量# 9. 降低并发——单线程慢速采集time.sleep(random.uniform(3,8))# 每条数据间隔3-8秒第三步被检测到的后手当反爬已经触发后# 1. 检测验证码并暂停不要硬刚defcheck_captcha():try:captchadriver.find_element(By.CSS_SELECTOR,.captcha, #verify, .geetest)returnTrueexcept:returnFalseifcheck_captcha():print(检测到验证码暂停30分钟后重试)time.sleep(1800)# 2. 检测IP封禁defcheck_blocked():ifdriver.titleAccess Deniedor403indriver.page_source[:500]:returnTruereturnFalse有什么坑坑一过度反反爬反而更显眼现象又是换IP又是随机ua又是无头模式忙活半天反而更容易被检测。原因反爬系统看的是整体画像。你用了代理IP但是浏览器指纹暴露了你是自动化工具——矛盾的行为反而触发告警。TEMU店群如何管理运营解决从最简单的做起——先加随机延迟和请求头伪装确实被拦了再上IP轮换。不要一次性上所有手段。坑二Cookie过期没处理现象保存的Cookie用了几天就不能用了但流程没有检测机制一直用过期Cookie采集空数据。解决采集前检查登录状态Cookie失效则重新登录。坑三无视网站的robots.txt现象无视网站规则强行采集导致IP或账号被永久封禁。解决正规业务采集前先查看网站的robots.txt和用户协议遵守合理限制。坑四采集频率为了安全设得太低现象每条数据间隔10秒1000条数据要采将近3小时。解决评估实际需要的频率。大部分网站对正常频率的访问不会拦截。可以逐步加速测试找到临界点。总结反反爬的核心不是技术是策略——先在最低频率下确保能采集到数据然后逐步提速直到触发反爬再回调到安全速度。不要一开始就上全部反反爬手段那只会让你的行为更可疑。