Selenium绕过浏览器指纹的三种方法

浏览器指纹的详细解释可以看这个:

常见的浏览器指纹包含哪些_小锋学长生活大爆炸的博客-CSDN博客

方法一、使用stealth.min.js

反正我是没成功,大家仅供参考

def mergeStealthJS(self, browser):
    # https://bot.sannysoft.com/
    if not os.path.exists('stealth.min.js'):
        url = 'https://cdn.jsdelivr.net/gh/requireCool/stealth.min.js/stealth.min.js'
        resp = requests.get(url)
        with open('stealth.min.js', 'w+') as f:
            f.write(resp.text)

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

    browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': content})
    return browser

复制

方法二、使用selenium-stealth

我也没成功,大家可以试试

pip3 install selenium-stealth

复制

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium_stealth import stealth


options = Options()
options.add_argument("start-maximized")

# Chrome is controlled by automated test software
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
s = Service('C:\\BrowserDrivers\\chromedriver.exe')
driver = webdriver.Chrome(service=s, options=options)

# Selenium Stealth settings
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/")

复制

方法三、使用undetected-chromedriver

这个确实成功了~

GitHub - ultrafunkamsterdam/undetected-chromedriver: Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)

pip3 install undetected_chromedriver

复制

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('https://nowsecure.nl')

复制

还有一点要注意:

异常现象:

        如果使用pyinstaller对undetected-chromedriver直接进行打包,那打包后的exe大概率无法运行的。

解决方法:

        在代码最开始在import 模块之前加上以下内容,然后再进行打包即可:

from multiprocessing import freeze_support
freeze_support()

复制

原因解析:

        在调用某些模块的时候,也是进程,而在多进程中,你程序中的进程不会被阻塞,而一直循环起进程。而undetected-chromedriver内部正好就开了进程。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

本文分享自作者个人站点/博客:https://blog.csdn.net/sxf1061700625复制

如有侵权,请联系 cloudcommunity@tencent.com 删除。

Selenium是一个常用的自动化测试工具,可以模拟人类操作浏览器,包括修改浏览器指纹。下面是使用Selenium修改浏览器指纹的一般步骤: 1. 安装Selenium库:使用pip命令安装Selenium库,例如`pip install selenium`。 2. 下载浏览器驱动:根据你使用的浏览器,下载对应的浏览器驱动。Selenium需要根据浏览器驱动来控制浏览器。常见的浏览器驱动如Chrome驱动(chromedriver)、Firefox驱动(geckodriver)等。 3. 配置浏览器驱动路径:将下载的浏览器驱动放在合适的位置,并将其路径配置到系统环境变量中,或者在代码中指定驱动路径。 4. 创建浏览器实例:使用Selenium创建一个浏览器实例,例如使用Chrome浏览器: ```python from selenium import webdriver # 指定Chrome驱动路径 driver = webdriver.Chrome(executable_path='path/to/chromedriver') ``` 5. 修改浏览器指纹:通过修改浏览器的User-Agent来修改浏览器指纹。以下是一个示例代码: ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options # 创建Chrome选项对象 options = Options() # 设置User-Agent options.add_argument('--user-agent="Your User Agent"') # 创建Chrome浏览器实例 driver = webdriver.Chrome(executable_path='path/to/chromedriver', options=options) ``` 在`--user-agent`后面填写你想要设置的User-Agent。 6. 执行自动化操作:使用Selenium的相关方法,如`get()`访问网页,`find_element()`定位元素等,执行你需要的自动化操作。 需要注意的是,使用Selenium修改浏览器指纹可能会触发一些网站的反爬虫机制,因为Selenium模拟的是真实浏览器行为。在使用时,应遵守网站的规则,并进行合法合规的爬取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值