从0到1开发反爬脚本:基于selenium-stealth的完整项目教程

从0到1开发反爬脚本:基于selenium-stealth的完整项目教程

从0到1开发反爬脚本:基于selenium-stealth的完整项目教程

【免费下载链接】selenium-stealthTrying to make python selenium more stealthy.项目地址: https://gitcode.com/gh_mirrors/se/selenium-stealth

selenium-stealth是一个强大的Python工具,能帮助开发者构建更隐蔽的Selenium爬虫脚本,有效绕过网站的反爬机制。本教程将带你快速掌握这个工具的使用方法,从环境搭建到实际应用,让你的爬虫脚本在各种反爬检测面前如虎添翼。

🚀 为什么选择selenium-stealth?

在网络爬虫开发中,Selenium常因特征明显而被网站识别。selenium-stealth通过模拟真实浏览器环境,解决了这一痛点:

  • ✅ 能通过几乎所有公开的机器人检测测试
  • ✅ 支持Google账户登录等敏感操作
  • ✅ 有助于维持正常的reCAPTCHA v3评分
  • ✅ 基于成熟的JavaScript反检测方案puppeteer-extra-plugin-stealth开发

📋 环境准备与安装

1. 安装必要依赖

首先确保你的环境中已安装Python,然后通过pip安装selenium-stealth及其依赖:

pip install selenium-stealth

项目的核心依赖在requirements.txt中定义,主要包括:

  • selenium:用于控制浏览器的核心库
  • flake8:代码检查工具
  • pytest:测试框架

2. 获取项目代码

通过以下命令克隆完整项目代码:

git clone https://gitcode.com/gh_mirrors/se/selenium-stealth

🔍 核心功能解析

selenium-stealth通过修改浏览器的各种属性和行为来实现隐蔽性,主要功能模块位于selenium_stealth/目录下,包括:

  • 浏览器特征伪装:如navigator.webdriver.js、navigator.vendor.js等文件
  • WebGL属性修改:通过webgl.vendor.js伪装显卡信息
  • 媒体编解码器模拟:media.codecs.js处理媒体能力检测
  • 窗口尺寸调整:window.outerdimensions.js模拟真实窗口大小

🎯 快速上手:基础使用教程

1. 基本配置模板

以下是使用selenium-stealth的基础模板,你可以在example.py中找到完整示例:

from selenium import webdriver from selenium_stealth import stealth # 配置Chrome选项 options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) # 初始化浏览器驱动 driver = webdriver.Chrome(options=options) # 应用stealth伪装 stealth(driver, languages=["en-US", "en"], vendor="Google Inc.", platform="Win32", webgl_vendor="Intel Inc.", renderer="Intel Iris OpenGL Engine", fix_hairline=True, ) # 访问目标网站 driver.get("https://bot.sannysoft.com/")

2. 关键参数说明

stealth函数提供了多个可配置参数,用于定制浏览器特征:

  • languages:设置浏览器语言偏好
  • vendor:设置浏览器供应商信息
  • platform:设置操作系统平台
  • webgl_vendorrenderer:伪装显卡信息
  • fix_hairline:修复细线条渲染问题

📊 效果对比:selenium-stealth的强大之处

使用selenium-stealth前后,爬虫在反爬检测网站上的表现有显著差异。以下是在bot.sannysoft.com上的测试结果对比:

无stealth保护的Selenium

可以看到,未使用selenium-stealth时,多个检测项(如webdriver存在性、浏览器特征等)被标记为红色,表明爬虫被识别。

有stealth保护的Selenium

使用selenium-stealth后,所有检测项均显示为绿色通过状态,完美模拟了真实浏览器环境。

💡 高级技巧与最佳实践

1. Headless模式配置

虽然headless模式更隐蔽,但需要额外配置以避免被检测:

options.add_argument("--headless=new") options.add_argument("--disable-gpu") options.add_argument("--window-size=1920,1080")

2. 用户代理轮换

定期更换用户代理可以进一步提高隐蔽性:

from fake_useragent import UserAgent ua = UserAgent() options.add_argument(f"user-agent={ua.random}")

3. 合理设置延迟

模拟人类操作速度,避免过快请求:

import time # 页面加载后等待随机时间 time.sleep(2 + random.uniform(0, 3))

📝 总结与扩展

通过本教程,你已经掌握了selenium-stealth的基本使用方法和核心功能。这个强大的工具能帮助你构建更隐蔽、更可靠的爬虫脚本,应对各种反爬挑战。

项目的源代码结构清晰,主要功能实现位于selenium_stealth/目录下,你可以根据需要进行定制和扩展。无论是数据采集、自动化测试还是其他浏览器自动化任务,selenium-stealth都能成为你的得力助手。

现在就开始使用selenium-stealth,让你的爬虫脚本在网络世界中隐形穿梭吧!

【免费下载链接】selenium-stealthTrying to make python selenium more stealthy.项目地址: https://gitcode.com/gh_mirrors/se/selenium-stealth

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考