undetected chromedriver

2025-12-11 0 852

Undetected_chromedriver

https://gith**ub.co*m/ultrafunkamsterdam/undetected-chromedriver

优化的Selenium Chromedriver补丁不会触发反机器人服务,例如Distill Network / imperva / datadome / botprotect.io,会自动下载驱动程序二进制并进行修补。

  • 测试直到当前的Chrome Beta版本
  • 还可以在勇敢的浏览器和许多其他基于铬的浏览器上使用,但是您需要知道自己在做什么,需要进行一些调整。
  • Python 3.6 ++ **

安装

pip install undetected-chromedriver

或者,如果您喜欢冒险,请直接通过GitHub安装

pip install git+https://www.gi*th**ub.com/ultrafunkamsterdam/undetected-chromedriver@master     # replace @master with @branchname for other branches

所有人的消息

我将对问题跟踪器限制。贝恩虐待太久了。
有什么好消息吗?
是的,我已经打开了未发现的讨论,从长远来看,我认为这将帮助我们更好。


这不是什么

此软件包不会,我重复没有隐藏您的IP地址,因此,当从数据中心运行(甚至较小的)时,很大的机会很大,您不会通过!另外,如果您在家中的IP声誉较低,您将不会通过!

从家里和数据中心运行。

 import undetected_chromedriver as uc
driver = uc . Chrome ( headless = True , use_subprocess = False )
driver . get ( \'https://n*ow*s*ecure.nl\' )
driver . save_screenshot ( \'nowsecure.png\' )

3.5.0

  • 硒4.10引起了一些问题。 3.5.0是兼容的,具有硒4.9或以上已固定。我不能再支持<4.9。
  • 从constructor中删除了一些Kwargs:service_args,service_creationflags,service_log_path。
  • 添加了find_elements_recursive Generator函数。这更多是一种便利性效果

3.4.5

  • 多个星期。如果使用3.4.0的自动检测算法的最新高级算法(所以我认为),但显然,对于某些OS-ES,这在与元素交互时会导致错误。必须使用其他方法恢复回去,修复错误,现在最终仍然能够坚持初始想法(+修复错误)
  • 对Chrome 110的更新引起了另一个惊喜,这次是无头用户的。
  • 尽管Leverless不受支持,但我确实进行了修补!
  • 很高兴宣布它也未被发现(但仍然没有支持;)
  • 特别感谢@mdmintz和 @abdulzain6
  • 还要特别感谢@sebdelsol的帮助解决问题部分,您必须发疯:)

3.4.0

大更新!要小心,因为它可能会破坏您的代码。

  • 重写了反检测机制,而不是删除和重命名变量,我们只是保留它们,但首先防止它们被注入。至少在不久的将来,这将使我们免受检测。

  • 重写文件命名,以防止{RandomString} _chromedriver.exe的1000结束,而是称为undetected_chromedriver.exe

  • 清理删除了compat,V2文件和测试文件夹

3.2.0

  • 添加了一个示例,其中包含一些典型的WebDriver代码,常见问题的答案,陷阱 +展示一些技巧以抛弃对多线程的需求。

>>>>示例代码<<<<

  • 添加了WebElement.Click_SAFE()方法,如果您在单击链接后被检测到,可以尝试使用。这不能保证起作用。

  • 添加了WebElement.Children(self,tag = none,recursive = false),以轻松获取/查找子节点。例子:

    body = driver.find_element(\'tag name\', \'body\')
    
    # get the 6th child (any tag) of body, and grab all img\'s within (recursive). 
    images = body.children()[6].children(\'img\', True)
    srcs = list(map(lambda _:_.attrs.get(\'src\'), images))
    
  • 添加了示例。我在问愚蠢的问题时可以指向人们的位置(不,实际上很酷,每个人都应该看到它)

  • 对Lambda平台的支持增加了

  • 添加了对X86_32的支持

  • 对系统报告为Linux2的添加了支持

  • 一些重构

3.1.6

仍然通过强壮

  • use_subprocess现在默认为true。太多的人不了解多处理和名称==\’ main ,在测试后,似乎不再有所作为

  • 添加了no_sandbox,默认为true,这也没有烦人的“您使用不安全命令行…” bar。

  • 更新Docker映像。您现在可以VNC或RDP进入容器中以查看实际的浏览器窗口

  • 当然,“常规”模式也有效

3.1.0

此版本可能会破坏您的代码,在更新之前进行测试!

  • 添加了新的反检测逻辑!

  • V2已成为主要模块,因此不再需要引用V2。这意味着您现在可以简单地使用:

     import undetected_chromedriver as uc
    driver = uc . Chrome ()
    driver . get ( \'https://n*ow*s*ecure.nl\' )

    对于向后兼容性,V2不会删除,而是将v2删除到主模块中。

  • 修复了非窗口OS-E上的“欢迎屏幕”。对于那些欢迎屏幕并使用更多数据喂食的那些nagfetishist,请使用Chrome(custress_welcome = false)。

  • 在构造函数中替换了browser_executable_path中的替换可执行文件path

  • “ v1”(?)现在移至_compat。

  • 固定依赖版本

  • ChromeOptions自定义处理已删除,因此它与WebDriver.Chromium.Options.Chromiumiumoptions兼容。

  • 删除了Chrome.get()fu,并恢复为“几乎”原始:

    • 不再需要陈述,尽管它仍然为了向后兼容而起作用。
    • 没有睡眠,停止启动课,延迟或异步CDP黑魔法!
    • 这也将解决许多其他“问题”。
  • 测试成功迄今为止:100%

  • 只是再提一下,因为有些人很难阅读:无头仍然是WIP。提出问题是不必要的

3.0.4更改

  • 改变过程创建行为以完全独立

  • 更改.get(url)方法始终使用上下文管理器

  • 更改了.get(URL)方法,将CDP在引擎盖下使用。

    …带有陈述不再需要的。

  • TODO:努力进行异步和硒4

智慧的话:

每当你遇到艰苦的

来自会话未创建:此版本的Chromedriver仅支持Chrome版本96#或版本

解决方案很简单:

   import undetected_chromedriver as uc
   driver = uc . Chrome ( version_main = 95 )

2021年7月:目前忙于实施未发现的硒4

新闻快报:#255

用法

为了防止不必要的发胶和发出发育,请注意本文档末尾的重要说明。

简单的

从字面上看,这就是您要做的。包括设置,并且您的浏览器可执行文件可自动找到。如果您遇到问题,这也是我建议使用的片段。

 import undetected_chromedriver as uc


driver = uc . Chrome ()
driver . get ( \'https://n*ow*s*ecure.nl\' )  # my own test test site with max anti-bot protection

更高级的方式,包括设置Profie文件夹

从字面上看,这就是您要做的。如果不存在指定的文件夹,则将创建一个新的配置文件。指定这样的数据DIR将不会在出口时自动化。

 import undetected_chromedriver as uc


options = uc . ChromeOptions ()

# setting profile
options . user_data_dir = \"c: \\\\ temp \\\\ profile\"

# use specific (older) version
driver = uc . Chrome (
    options = options , version_main = 94
    )  # version_main allows to specify your chrome version instead of following chrome global version

driver . get ( \'https://n*ow*s*ecure.nl\' )  # my own test test site with max anti-bot protection

专家模式,包括DevTool/电线事件

从字面上看,这就是您要做的。现在,您可以收听并订阅低级DevTools-protocel。我最近发现这也在计划将来发布官方Chromedriver的计划。但是我目前实施了自己的实施。由于我自己需要调查。

下载源码

通过命令行克隆项目:

git clone https://github.com/ultrafunkamsterdam/undetected-chromedriver.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 undetected chromedriver https://www.zuozi.net/34459.html

learn python
上一篇: learn python
chinese xinhua
下一篇: chinese xinhua
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务