如何隐藏Selenium特征实现自动化网页采集

简介: Selenium是一个流行的自动化网页测试工具,可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而,有些网站会检测浏览器是否由Selenium驱动,如果是,就会返回错误的结果或拒绝访问。为了避免这种情况,我们需要隐藏Selenium的特征,让网站认为我们是正常的用户。

22.png

Selenium是一个流行的自动化网页测试工具,可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而,有些网站会检测浏览器是否由Selenium驱动,如果是,就会返回错误的结果或拒绝访问。为了避免这种情况,我们需要隐藏Selenium的特征,让网站认为我们是正常的用户。

以下是三种常见的隐藏Selenium特征的方法:

  1. 修改navigator.webdriver标志:navigator.webdriver是一个浏览器提供的属性,用于表示浏览器是否由webdriver控制。默认情况下,如果浏览器由Selenium驱动,这个标志的值为true,否则为false。我们可以通过execute_cdp_cmd命令来执行Google Chrome DevTools命令,从而修改这个标志的值为false或者undefined,以隐藏Selenium的特征。
  2. 改变user-agent:user-agent是一个浏览器发送给网站的字符串,用于表示浏览器的类型和版本。有些网站会根据user-agent来判断用户的设备和操作系统,如果发现user-agent不符合正常的范围,就会怀疑是Selenium驱动的浏览器。我们可以通过execute_cdp_cmd命令来设置Network.setUserAgentOverride参数,从而改变user-agent为任意我们想要的值,以隐藏Selenium的特征。
  3. 排除或关闭一些Selenium相关的开关:enable-automation和useAutomationExtension是两个常见的Selenium相关开关,它们会影响浏览器的行为和外观,比如在浏览器窗口上显示“Chrome正在受到自动软件的控制”的提示。我们可以通过Chrome选项来添加或删除这些开关,从而让浏览器看起来更像正常的浏览器,以隐藏Selenium的特征。

综上所述,隐藏Selenium特征是实现自动化网页测试的关键。通过以上三种方法,我们可以让浏览器看起来更像正常的用户,避免被网站检测到并拒绝访问。综合上面的几种selenium特征隐藏方式,以采集大众点评的评论为案例,结合实际爬虫采集过程中需要使用的代理IP池,提供如下demo:

fromseleniumimportwebdriverfromselenium.webdriver.common.proxyimportProxy, ProxyType# 亿牛云爬虫加强版代理IP 地址、端口号、用户名和密码proxy_address='www.16yun.cn'proxy_port='3100'proxy_username='16YUN'proxy_password='16IP'# 设置Chrome选项,包括隐藏Selenium特征、设置代理IP和排除或关闭一些Selenium相关开关options=webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--disable-extensions')
options.add_argument('--disable-gpu')
options.add_argument('--disable-infobars')
options.add_argument('--disable-notifications')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-web-security')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--no-sandbox')
options.add_argument('--start-maximized')
options.add_argument('--user-data-dir=/dev/null')
options.add_argument('--proxy-server={}'.format(proxy_address+':'+proxy_port))
options.add_argument('--proxy-auth={}:{}'.format(proxy_username, proxy_password))
options.add_experimental_option('excludeSwitches', ['enable-automation', 'useAutomationExtension'])
# 初始化Chrome浏览器,并使用上述选项driver=webdriver.Chrome(options=options)
# 隐藏navigator.webdriver标志,将其值修改为false或undefineddriver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
# 设置user-agent,改变user-agent的值user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": user_agent})
# 访问大众点评中商品的评论页面url='https://www.dianping.com/shop/1234567/review_all'driver.get(url)
# 在此处添加其他代码来执行您想要的任务

此代码将使用Chrome浏览器,并在启动浏览器时使用选项隐藏Selenium特征、设置用户名和密码方式的代理IP和排除或关闭一些Selenium相关开关。然后,使用execute_cdp_cmd命令来执行Google Chrome DevTools协议中的命令,将navigator.webdriver标志的值修改为false或undefined。使用execute_cdp_cmd命令来设置Network.setUserAgentOverride参数,将user-agent更改为指定的user-agent字符串。最后,访问大众点评中商品的评论页面,并在此处添加其他代码来执行您想要的任务.

相关文章
|
10天前
|
人工智能 自然语言处理 API
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
Proxy Lite 是一款开源的轻量级视觉语言模型,支持自动化网页任务,能够像人类一样操作浏览器,完成网页交互、数据抓取、表单填写等重复性工作,显著降低自动化成本。
211 11
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
|
1月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
108 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
3月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
503 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
3月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
167 31
Selenium IDE:Web自动化测试的得力助手
|
3月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
302 17
Selenium:强大的 Web 自动化测试工具
|
4月前
|
数据采集
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
本文介绍了如何使用Puppeteer结合代理IP和用户伪装技术,轻松绕过大众点评的Captcha验证,实现商家信息的高效采集。通过配置Puppeteer、设置代理和用户伪装参数、模拟人类操作等步骤,成功提取了目标页面的数据。该方法不仅提高了爬虫的稳定性和隐蔽性,还为市场研究和商业分析提供了有力支持。注意,数据采集需遵守法律法规及网站政策。
109 1
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
|
4月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
215 8
|
4月前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
397 4
|
4月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
90 0
|
5月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
99 0

热门文章

最新文章