Selenium Edge的无头浏览器模式以及反WebDriver检测

这篇具有很好参考价值的文章主要介绍了Selenium Edge的无头浏览器模式以及反WebDriver检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Selenium Edge的配置

        由于本人只使用Edge浏览器,所以在得知Selenium对PantomJS的支持取消后,在网上找了各种关于Edge浏览器的资料。配置Selenium Edge有多种方法,但这里只介绍一种方法。

(1) 下载MSEdgeDriver驱动

Selenium Edge的无头浏览器模式以及反WebDriver检测MSEdgeDriver下载地址

 此处需要注意将浏览器更新到最新版本,以及选择正确的下载通道

解压下载的压缩包后会得到名为 msedgedriver.exe 的可执行程序,将这个程序放在任意一个地方,并将该文件所在的路径加入到系统的环境变量中

Selenium Edge的无头浏览器模式以及反WebDriver检测

 这个是我的 msedgedriver.exe 存放地址

环境变量设置好之后重启电脑,如果没有出错,在cmd中输入msedgedriver将不会报错

(2) 安装Selenium库

pip install selenium>=4.3.0
# 也可以是下面的
pip install selenium

Selenium Edge的无头浏览器模式以及反WebDriver检测

 需要注意的是selenium的版本要在4.0以上(其实3.0~4.0也可以,但是需要安装额外的库,为了简单,直接安装selenium4

(3) 使用Selenium

from selenium import webdriver
browser = webdriver.Edge()
url = "https://baidu.com"
browser.get(url)

​​​​​​​

 

 

出现上面的界面就说明selenium正常工作 

2. Edge无头浏览器模式

        如果不设置无头浏览器模式,在Selenium控制浏览器工作时浏览器的一举一动都会显示出来,会占用电脑的gpu。在调试代码时,浏览器的GUI界面能够提供帮助,但是在爬虫工作时,浏览器的GUI就显得多余了,关闭GUI可以节省一部分计算资源。

导入selenium库
from selenium import webdriver
# 在这里导入浏览器设置相关的类
from selenium.webdriver.edge.options import Options

# 无可视化界面设置 #

edge_options = Options()
# 使用无头模式
edge_options.add_argument('--headless')
# 禁用GPU,防止无头模式出现莫名的BUG
edge_options.add_argument('--disable-gpu')

# 将参数传给浏览器
browser = webdriver.Edge(options=edge_options)

# 启动浏览器
url = "https://baidu.com"
browser.get(url)
print(browser.title)

# 关闭浏览器
browser.quit()

 正常情况下会输出 “百度一下,你就知道”

2. 关于Selenium反反爬虫

        有时候,我们利用 Selenium 自动化爬取某些网站时,极有可能会遭遇反爬。

  实际上,我们使用默认的方式初始化 WebDriver 打开一个网站,下面这段 JS 代码永远为 True,而手动打开目标网站的话,则为:False。

Selenium Edge的无头浏览器模式以及反WebDriver检测

上图是手动打开浏览器

下图是通过selenium打开浏览器

Selenium Edge的无头浏览器模式以及反WebDriver检测

         稍微有一点反爬经验的工程师利用上面的差别,很容易判断访问对象是否为一个爬虫,然后对其做反爬处理,返回一堆脏数据或各种验证码。

反检测代码如下

导入selenium库
from selenium import webdriver
# 在这里导入浏览器设置相关的类
from selenium.webdriver.edge.options import Options

# 反检测设置 #

edge_options = Options()

# 开启开发者模式
edge_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 禁用启用Blink运行时的功能
edge_options.add_argument('--disable-blink-features=AutomationControlled')


# 将参数传给浏览器
browser = webdriver.Edge(options=edge_options)

# 启动浏览器
url = "https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html"
browser.get(url)

代码中url所指网站可以检测浏览器是否通过selenium控制,如果未检测出selenium控制,则"WebDriver"一栏为绿色。

Selenium Edge的无头浏览器模式以及反WebDriver检测文章来源地址https://www.toymoban.com/news/detail-407131.html

到了这里,关于Selenium Edge的无头浏览器模式以及反WebDriver检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium基本使用、无头浏览器(chrome、FireFox)、搜索标签

    这个模块:既能发请求,又能解析,还能执行js selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行 JavaScript代码的问题 selenium 会做web方向的自动化测试 appnium 会做 app方向的自动化测试 selenium 可以操作浏览器,模拟人的 行为 下载浏览器驱动

    2024年02月04日
    浏览(26)
  • 包括edge,Chrome,火狐、百度,360等浏览器怎么全屏_如何在Microsoft Edge中启用和禁用全屏模式以及解决浏览器无法开启或关闭全屏的问题

    我们经常访问 Chrome 、 edge 、百度、360等浏览器,但时常在查找资料时想截图保存,但有部分数据无法截全,如下图所示: 像 Write a Python docstring 下面的数据无法截取到,此时,我们就需要全屏截取,如下图所示: 那么,我们在主流浏览器 (edge,Google Chrome和Mozilla Firefox)

    2024年02月08日
    浏览(26)
  • Selenium 无头浏览器被知乎限制访问的解决方案

    我尝试使用如下代码爬取知乎的有关内容,出现知乎安全验证界面: 添加启动参数 在网上的许多文章中,反复提到了如下三行代码,然而我将他们加入代码后没有什么效果: JavaScript特殊全局变量 有一些文章提到,通过 WebDriver 启动的网页会存在一些特殊的 JS 变量,这些变

    2024年02月14日
    浏览(15)
  • selenium 驱动 Edge浏览器,解决selenium打开Edge浏览器闪退问题

    1、在设置中查看浏览器的版本号 2、在官网中进行对应下载 Microsoft Edge WebDriver - Microsoft Edge Developer 1、打开设置界面 右击【此电脑】---选择【属性】----选择【高级系统设置】-----点击【环境变量】 2、变量设置 在【系统变量】选项中,选择【Path】----》点击新建 将Edge浏览器

    2024年02月05日
    浏览(30)
  • 『python爬虫』24. selenium之无头浏览器-后台静默运行(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 一般性的selenium会打开浏览器页面,展示图形化页面给我们看,我们都应该知道命令行式的程序肯定比这种渲染图形化界面的程序快速高效。为了一定程度上缓解selenium慢的问题,我们可以采

    2024年02月07日
    浏览(55)
  • selenium-webdriver调用谷歌浏览器和火狐浏览器

    nodejs selenium-webdriver 操作文档 https://www.npmjs.com/package/selenium-webdriver 1.调用谷歌浏览器 2.调用火狐浏览器 下面设置了一些选项 ​ 需要设置环境变量,在CMD中firefox可以打开浏览器 否则报错 Expected browser binary location, but unable to find binary in default location, no \\\'moz:firefoxOpti  

    2024年02月02日
    浏览(29)
  • selenium+webdriver之安装浏览器驱动

    1.查看谷歌浏览器版本,因为浏览器驱动版本需要与浏览器版本一致         查看谷歌版本路径:帮助》关于Google Chrome         我的浏览器版本是          2.下载浏览器驱动         下载驱动链接: http://npm.taobao.org/mirrors/chromedriver/         2.1点击上方链接

    2024年02月06日
    浏览(26)
  • WebDriver+Selenium实现浏览器自动化

    Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。就像Selenium官方网站上描述的那样,Selenium可以自动化操纵浏览器。完了!你

    2024年02月03日
    浏览(17)
  • 针对于selenium的一些常规配置(防检测,无头,保留自己浏览器的登录信息等)

    在使用selenium的时候有时候会受到网站的检测导致我们的程序被迫中止,因此我们需要给selenium添加一些浏览器特征来防止被网站检测到**(1-4为防检测配置)**. 在给selenium添加参数的时候,我们可以使用add_argument selenium添加user-agent参数 去除 “Chrome正受到自动化测试软件的控制”

    2024年02月12日
    浏览(17)
  • 浏览器自动化脚本 Selenium WebDriver 快速入门

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客 文章浏览阅读2.7k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、

    2024年03月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包