广告
返回顶部
首页 > 资讯 > 后端开发 > Python >selenium执行js并绕过webdriver监测常见方法
  • 246
分享到

selenium执行js并绕过webdriver监测常见方法

2024-04-02 19:04:59 246人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录selenium执行js常见的selenium监测手段常用绕过selenium监测1常用绕过selenium监测2常用绕过selenium监测3常用绕过selenium监测4se

selenium执行js

优点:直接调用浏览器的环境
障碍:绕过selenium监测

原理:

# 执行js代码
bro.execute_script('js代码')

常见的selenium监测手段

正常登录 window.navigator.WEBdriver == undefined
自动化的 window.navigator.webdriver == true

除此之外,还有一些其它的标志性字符串(不同的浏览器可能会有所不同),常见的特征串如下所示:

webdriver  
__driver_evaluate  
__webdriver_evaluate  
__selenium_evaluate  
__fxdriver_evaluate  
__driver_unwrapped  
__webdriver_unwrapped  
__selenium_unwrapped  
__fxdriver_unwrapped  
_Selenium_IDE_Recorder  
_selenium  
calledSelenium  
_WEBDRIVER_ELEM_CACHE  
ChromeDriverw  
driver-evaluate  
webdriver-evaluate  
selenium-evaluate  
webdriverCommand  
webdriver-evaluate-response  
__webdriverFunc  
__webdriver_script_fn  
__$webdriverAsyncExecutor  
__lastWatirAlert  
__lastWatirConfirm  
__lastWatirPrompt  
$chrome_asyncScriptInfo  
$cdc_asdjflasutopfhvcZLmcfl_  

了解了这个特点之后,就可以在浏览器客户端JS中通过检测这些特征串来判断当前是否使用了selenium,并将检测结果附加到后续请求之中,这样服务端就能识别并拦截后续的请求。

常用绕过selenium监测1

正常登录 window.navigator.webdriver == undefined
自动化的 window.navigator.webdriver == true

from selenium import webdriver
options = webdriver.ChromeOptions()
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
options.add_experimental_option('excludeSwitches', ['enable-automation'])
#停止加载图片
options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
browser = webdriver.Chrome(options=options)
browser.get('https://www.taobao.com/')

常用绕过selenium监测2

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('debuggerAddress','127.0.0.1:9222')
browser=webdriver.Chrome(executable_path=r'C:\Users\TR\AppData\Local\Google\Chrome
\Application\chromedriver.exe',chrome_options=chrome_options)
browser.get('Http://www.zhihu.com')

终端输入如下指令:chrome.exe --remote-debugging-port=9222 --user-data-dir=“D:\cdsf”(需要谷歌驱动在系统环境变量下,然后再运行程序)

remote-debugging-port是你代码中指定的端口debuggerAddress;executable_path是你谷歌驱动位置;user-data-dir随便指定一个目录就行

常用绕过selenium监测3

1.使用chrome的远程调试模式结合selenium来遥控chrome进行抓取,这样不会携带指纹信息

步骤:

- 使用调试模式手工启动chrome,进入chrome的安装路径,例如chrome装在 C:\program\google\chrome.exe下
- 进入chrome安装路径
- 执行命令:
#注意端口不要被占用,防火墙要关闭,user-data-dir用来指明配置文件的路径
   chrome.exe --remote-debugging-port=9222 --user-data-dir="指向任意空文件夹"

2.启动完·之后新建python文件

运行代码:

import requests
from selenium import webdriver
chrome_options = "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe"
chrome_options  = webdriver.ChromeOptions()
chrome_options.add_experimental_option('debuggerAddress','10.8.13.95:9222')
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get("https://www.zhihu.com/signup?next=%2F")
# chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\moni"

这样监测的就不是selenium模拟了

常用绕过selenium监测4

def selenium(js):
    option = webdriver.ChromeOptions()
    # option.add_argument('--headless')
    option.add_experimental_option('useAutomationExtension', False)
    option.add_experimental_option('excludeSwitches', ['enable-automation'])
    bro = webdriver.Chrome(executable_path='./chromedriver', options=option)  # 弹出浏览器,要给浏览器驱动的地址
     # 打开页面优先执行的js,execute_cdp_cmd
    bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": """
            Object.defineProperty(navigator, 'webdriver', {
              get: () => undefined
            })
          """
    })
    bro.implicitly_wait(10)
    bro.get('https://www.toutiao.com/')
    time.sleep(5)
    print(bro.page_source)  # 获取页面返回的html代码
    bro.execute_script(js)
    input()

以上就是selenium执行js并绕过webdriver监测常见方法的详细内容,更多关于selenium执行js绕过webdriver监测的资料请关注编程网其它相关文章!

--结束END--

本文标题: selenium执行js并绕过webdriver监测常见方法

本文链接: https://www.lsjlt.com/news/117237.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • selenium执行js并绕过webdriver监测常见方法
    目录selenium执行js常见的selenium监测手段常用绕过selenium监测1常用绕过selenium监测2常用绕过selenium监测3常用绕过selenium监测4se...
    99+
    2022-11-10
  • selenium怎么执行js并绕过webdriver监测
    这篇文章主要介绍了selenium怎么执行js并绕过webdriver监测的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇selenium怎么执行js并绕过webdriver监测文章都会有所收获,下面我们一起来看...
    99+
    2023-06-30
  • pyppeteer执行js绕过webdriver监测方法上
    目录Pyppeteer简介下载打开网页并截图评估页面上的脚本关键字参数的选项选择器基础用法模拟输入使用 tkinter 获取页面高度 宽度爬取京东商城爬取淘宝网taobao.pyex...
    99+
    2022-11-10
  • pyppeteer执行js绕过webdriver监测方法下
    目录官方文档启动pyppteer切图获取响应头,响应头状态,cookies获取当前页面标题获取页面html第一种:获取整个页面html第二种:只获取文本注入JS,控制上下滚动选择器获...
    99+
    2022-11-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作