selenium 防止window.navigator.webdriver对象检测的方法

这篇具有很好参考价值的文章主要介绍了selenium 防止window.navigator.webdriver对象检测的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当我们使用selenium 去访问或爬取某些网站的时候会遇到网站对selenium检测的一些情况。

正常用浏览器访问时:window.navigator属性是undefind

而使用selenium去访问 则会给window.navigator 设置webdriver属性

处理方法:

1.可以使用CDP(chrome开发者工具协议)解决这个问题

利用它可以实现每个页面刚加载的时候就执行Javascript语句 将webdriver属性置空

from selenium import webdriver
from selenium.webdriver import ChromeOptions


# 方法1 在每次打开新的页面时将webdriver属性置为空

option = ChromeOptions()
option.add_argument('--disable-blink-features=AutomationControlled')
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=option, executable_path="chromedriver.exe")
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
    "source": 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})

# 方法2

option = ChromeOptions()
option.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=option, executable_path="chromedriver.exe")
driver.get("xxxxxx")

还有一种方法是stealth.min.js  

with open('stealth.min.js') as f:
    js = f.read()

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": js
})


不过该方式有时候也会被检测出来文章来源地址https://www.toymoban.com/news/detail-835451.html

到了这里,关于selenium 防止window.navigator.webdriver对象检测的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Java Selenium WebDriver 常用方法

    一、创建浏览器对象 二、设置窗口位置、大小 三、访问网页操作 四、获取网页信息 五、切换窗口 driver.switchTo().window(\\\"要切换的窗口句柄\\\"); 六、截图保存 七、关闭窗口 八、元素定位 九、元素操作 持续更新中...  

    2024年02月03日
    浏览(40)
  • Selenium WebDriver对象没有“find_element_by_link_text“属性的解决方案

    Selenium WebDriver对象没有\\\"find_element_by_link_text\\\"属性的解决方案 当使用Selenium的Python绑定进行Web自动化测试时,您可能会遇到以下错误消息:“selenium ‘WebDriver’ object has no attribute ‘find_element_by_link_text’”。这通常是因为使用了不支持的方法或属性。在本文中,我将为您提供解

    2024年02月08日
    浏览(38)
  • Selenium中出现‘WebDriver‘对象没有‘find_element_by_xpath‘属性的错误解决方案(Python)

    Selenium中出现’WebDriver’对象没有’find_element_by_xpath’属性的错误解决方案(Python) Selenium是一个用于自动化Web浏览器测试的强大工具。它提供了许多方法来定位和操作网页元素。其中一种常用的方法是使用XPath来定位元素。然而,有时你可能会遇到一个错误,提示’WebDrive

    2024年02月04日
    浏览(37)
  • C#使用Selenium WebDriver模拟人工操作网页方法

    目录 1.Selenium WebDriver使用方法 2.Selenium WebDriver安装方法 1.Selenium WebDriver使用方法 在C#中模拟人工操作网页通常需要使用Web自动化工具或库来实现。一种常用的方式是使用Selenium WebDriver,它是一个用于自动化Web浏览器操作的工具,支持多种浏览器,包括Chrome、Firefox、Edge等。以

    2024年02月06日
    浏览(43)
  • Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2

            这篇说下ActionChains里常用的几种鼠标操作的方法。 ActionChains常用的鼠标操作方法 click() 鼠标左键单击 double_click() 鼠标左键双击 context_click() 鼠标右键单击 move_to_element() 鼠标移动到某个元素上(鼠标悬浮操作) click_and_hold() 点击鼠标左键,不松开 drag_and_drop() 拖拽到某

    2024年01月22日
    浏览(44)
  • Selenium WebDriver API 中涉及的一些常用方法和类

    Selenium WebDriver API 是 Selenium 提供的一组方法和类,用于控制浏览器和操作 Web 元素。这些 API 提供了丰富的功能,包括但不限于: 1. **查找元素**:通过不同的定位方式(如ID、Class Name、XPath等)在页面中查找元素。 2. **模拟用户操作**:包括点击、输入文本、清除文本、提交表

    2024年03月15日
    浏览(41)
  • pyinstaller打包selenium后弹出webdriver命令行窗口的解决方法

    最近在使用tkinter来开发一个GUI程序,用到了selenium的headless模式。代码调试妥当,准备用pyinstaller打包成exe文件,却发现在pycharm里面一切正常,打包后会弹出一个黑框,影响体验: 有的同学还会有类似以下日志 搜索一番之后大概发现了网上说的2种方案 pyinstaller 使用 --wind

    2024年02月11日
    浏览(54)
  • selenium使用 webdriver.Chrome() 报错,找不到执行文件的解决方法(一)

    使用 driver = webdriver.Chrome() 时,遇到以下报错: selenium.common.exceptions.WebDriverException: Message: \\\'chromedriver\\\' executable needs to be in PATH. 两种解决方法: (1)在webdriver.Chrome()中添加executable_path参数,参数value = chromedriver.exe文件所在路径,示例: from selenium import webdriver chrome_driver_path

    2024年02月11日
    浏览(77)
  • Selenium WebDriver提供By.CSS_SELECTOR定位元素方法

    `By.CSS_SELECTOR` 是 Selenium WebDriver 提供的一种定位元素的方法,它允许使用 CSS 选择器来定位页面上的元素。 以下是常见的 CSS 选择器语法: 1. **标签选择器(Tag Selector)**:通过元素的标签名选择元素。    - 示例:`p` 选取所有 p 标签的元素。 2. **类选择器(Class Selector)**:通

    2024年04月24日
    浏览(43)
  • 对象储存防止被搬运恶意盗刷流量解决方法

    新手在用对象存储的时候,不知道开启防盗链。如果不开启防盗链别人可以直接搬运你的图片放在他的站点上使用。他站点来访,扣除的是你存储桶的外网流量费用。 腾讯云设置方法   空referer的意思就是没有上传到任何站点,直接用浏览器打开访问域名进行访问的 如果开启

    2024年02月08日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包