
前言在上一篇文章我们使用 requests 库实现 HTTP 层面的页面请求模拟。但 requests 没有真实浏览器环境缺少浏览器指纹、鼠标、页面交互行为。很多现代平台风控会检测浏览器指纹单纯请求层模拟很容易被识别。Selenium 是经典的浏览器自动化库可以驱动 Chrome、Firefox 打开真实浏览器模拟打开网页、滚动页面、鼠标移动等真人操作。很多同学会用 Selenium 做账号自动化也就是大家口中的养号脚本。但再次提醒本文仅用于 Web 自动化、浏览器反爬技术学习禁止使用脚本批量操控平台账号做营销、引流、批量互动违反平台协议会导致账号封禁。一、为什么 requests 容易被识别而浏览器自动化更贴近真人Requests 只是发送 HTTP 数据包没有渲染页面不存在浏览器指纹、JS 执行环境、鼠标行为。而 Selenium 会启动完整浏览器加载 JS、图片生成浏览器指纹还可以模拟页面交互动作滚动页面、鼠标移动、点击元素这些都是真人浏览网页才有的行为。但是原生 Selenium 有标志性特征浏览器会暴露自动化标记网站 JS 可以检测window.navigator.webdriver字段识别出这是自动化浏览器。如果不做指纹隐藏即使写了滚动代码依然会被风控识别。二、环境准备pip install selenium需要下载对应 Chrome 版本的 ChromeDriver注意版本匹配。新版本 Selenium 内置驱动管理不需要手动下载 driver。基础 Demo模拟打开页面、滚动浏览from selenium import webdriver from selenium.webdriver.common.by import By import time import random def human_browse(url): options webdriver.ChromeOptions() # 关闭自动化提示特征 options.add_experimental_option(excludeSwitches, [enable-automation]) options.add_experimental_option(useAutomationExtension, False) driver webdriver.Chrome(optionsoptions) # 去除webdriver标记 driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, { source: Object.defineProperty(navigator, webdriver, {get: () undefined}) }) try: driver.get(url) time.sleep(random.uniform(2,4)) # 模拟多次滚动页面模拟人看内容 scroll_times random.randint(3,6) for _ in range(scroll_times): scroll_height random.randint(300,800) driver.execute_script(fwindow.scrollBy(0,{scroll_height})) time.sleep(random.uniform(1.2,3)) # 随机停留阅读 time.sleep(random.uniform(4,9)) except Exception as e: print(浏览异常,e) finally: driver.quit() if __name__ __main__: human_browse(https://example.com)代码中核心优化点关闭 enable-automation通过 CDP 命令删除 navigator.webdriver 标记隐藏自动化特征滚动距离、滚动次数、每一步等待全部随机避免固定规律行为。三、浏览器行为模拟的关键点贴近真人行为不要一次性滚动到底部真人浏览是分段滚动边看边下拉不会一次性直接拉到页面最底端。代码里循环分段滚动更符合真实用户。增加随机停顿页面加载后不会立刻操作会等待一段时间模拟人阅读内容。鼠标轨迹模拟进阶单纯滚动还不够高级风控会检测鼠标移动轨迹。直线快速移动鼠标是脚本特征真人鼠标移动带有不规则曲线需要引入随机偏移模拟自然轨迹。操作不要连续密集浏览、点击之间要有间隔不能一连串操作快速完成。四、Selenium 自动化常见风控陷阱很多新手以为只要隐藏 webdriver 就万事大吉实际上浏览器指纹检测体系很完善canvas 指纹、webgl 指纹、字体列表、插件信息、时区、语言等信息都会作为设备指纹。如果多个账号共用一套浏览器指纹很容易被判定批量账号。同时Selenium 本身性能低多账号并发需要多浏览器实例资源消耗巨大。很多人会用 undetected-chromedriver 进一步增强指纹隐藏但即便指纹隐藏做得再好批量账号自动互动操作依然属于违规行为。五、学习方向建议这个技术的合法应用场景Web 自动化测试、爬虫学习、页面功能自动化验证。不要把技术用于社交媒体、内容平台账号批量操作。平台风控团队一直在迭代检测手段今天可用的隐藏方案可能过段时间就失效账号随时会被封禁投入的时间全部白费。总结Selenium 可以驱动真实浏览器模拟页面滚动和浏览行为相比 requests能够模拟浏览器环境和交互行为。但浏览器指纹、行为时序都是风控系统检测的重点。技术本身没有善恶关键在于使用场景。学习浏览器自动化、指纹反检测可以提升爬虫、自动化测试能力。一定要遵守网站 robots 协议和用户协议规避法律与账号风险。