首页 > 其他分享 >selenium自动化检测方法总结 携带用户数据 绕过检测 无头模式 句柄切换

selenium自动化检测方法总结 携带用户数据 绕过检测 无头模式 句柄切换

时间:2024-09-09 12:51:26浏览次数:11  
标签:webdriver 句柄 driver window 检测 options selenium

1.selenium携带用户数据

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='chromedriver.exe')
option = webdriver.ChromeOptions()
user_data_dir=r'C:\Users\12501\AppData\Local\Google\Chrome\User Data' #这里只写到
User Data 目录, 用户名可能不同, 根据自己电脑路径去写
option.add_argument(f'--user-data-dir={user_data_dir}')
driver = webdriver.Chrome(service=service, options=option)
driver.get('https://www.baidu.com')

携带用户数据访问谷歌浏览器,防止频繁访问被qiang,相比直接selenium=自动化检测要高级一点 ;

2.selenium绕过检测

        os.chdir(r"C:\Program Files\Google\Chrome\Application")
        os.popen('chrome --remote-debugging-port=9527 --user-data-dir="D:\programming_tools\selenium"')
        # os.popen(r'.\chrome.exe --remote-debugging-port=9527 --user-data-dir="D:\programming_tools\selenium"')
        options = Options()
        # options.add_argument('--headless')  # 添加 无头模式 配置
        options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
        driver = webdriver.Chrome(options=options)

 推荐:此方法属于大神操作,基本不会被qiang,对一些需要频繁访问的网站,可以试试,主要原理是 selenium启动的chrome是自定义的浏览器,不是直接电脑上安装的浏览器,所有会被访问网站认为是真实用户的请求;(此方法也需要谷歌驱动)

3.selenium无头模式

from selenium.webdriver.chrome.options import Options  # 导入谷歌浏览器的配置对象
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains  # 导入鼠标动作链功能

options = Options()  # 实例化一个谷歌浏览器的配置对象
options.add_argument('--headless')  # 添加 无头模式 配置

service = Service(executable_path='chromedriver.exe')
driver = webdriver.Chrome(service=service, options=options)  # 创建浏览器对象的时候添加配置
driver.get('https://www.baidu.com/')
print(driver.page_source)

input()
driver.quit()

selenium的无头模式 防止检测占用视图,可以去干一些其他事情; 

4.selenium句柄切换

selenium操作页面时,若打开一个新页面,需要切换一下句柄,若每次点击都将打开一个新页面,则可以操作完新页面后,将新页面关闭,并将句柄调回到旧页面中,继续旧页面的操作;

# 存储当前窗口的句柄
original_window_handle = driver.current_window_handle

#  对当前旧窗口进行一些操作,点击后会跳转到新的页面

#  出现新页面后,存储所有窗口句柄
    window_handles = driver.window_handles
    # 切换到新窗口或新标签页
    for handle in window_handles:
        if handle != original_window_handle:
            driver.switch_to.window(handle)
            break

#  对新页面进行操作 xpath等

#  关闭新页面,并将句柄调回到旧页面
driver.close()
#  切换回原来的窗口
driver.switch_to.window(original_window_handle)

推荐几个网站:

https://spidertools.cn/#/formatHeader  爬虫工具库

https://googlechromelabs.github.io/chrome-for-testing/      谷歌驱动下载

https://blog.csdn.net/weixin_45081575/article/details/126585575   selenium绕过检测网站

(上述各个部分相互独立,可直接使用)

标签:webdriver,句柄,driver,window,检测,options,selenium
From: https://blog.csdn.net/weixin_50845028/article/details/142029366

相关文章

  • 河道漂浮物识别检测系统
    河道漂浮物识别检测系统依据智能视频分析,视频图像信息内容自动分析和识别,不用人工操纵;检测漂浮物(塑料泡沫、包装袋、堤岸漂浮植物种类等)生物群落等),精确提交检测结果,储存有关信息,便捷查验管理。河道漂浮物识别检测系统实时监控河面状况,对违法行为开展警报、沟通交流和事件记录。......
  • 工装穿戴检测系统 着装合规检测识别系统
    工装穿戴检测系统是根据规模性工作服图片数据信息识别学习训练,完成图片视频实时分析,着装合规检测识别系统根据人工智能算法精确分析合理的着装、工作服装色调识别;即时向上级领导以及服务平台推送违反规定时长、地址、现场图片等信息内容,安全监管工作人员能够第一次获得违反规定的......
  • 说说Canny边缘检测算子?
    Canny边缘检测算子什么是Canny边缘检测算子Canny边缘检测算子原理Canny边缘检测算子用途什么是Canny边缘检测算子Canny边缘检测算子是一种旨在以最优方式从图像中提取边缘信息的算法。其“最优”体现在三个方面:低错误率:算法应尽可能多地标识出图像中的实际边缘,同时......
  • 欺诈文本分类检测(十三):交叉训练验证
    1.引言交叉验证主要讨论的是数据集的划分问题。通常情况下,我们会采用均匀随机抽样的方式将数据集划分成3个部分——训练集、验证集和测试集,这三个集合不能有交集,常见的比例是8:1:1(如同前文我们所作的划分)。这三个数据集的用途分别是:训练集:用来训练模型,去学习模型的权重......
  • 课前准备---单细胞数据检测SNV(变异、插入、缺失、等位基因连锁)
    作者,EvilGenius单细胞检测变异的分析已经分享了很多,全部发的高分文章。日前外显子的课程已经安排上了,但是不一定能上,可能外显子分析对大家来讲不太重要吧,但更可能是大家都会分析,不管上不上,先好好备课吧(正好也偷个懒)。不过提醒大家一句,正因为做的人少,才是机会,表达信息的分析......
  • 关键点检测(7)——yolov8-head的搭建
    前两节我学习了yolov8的backbone和head操作。这一节就到了head部分。我们知道yolov8在流行的yolov5的架构上进行了扩展。在多个方面提供了改进。尤其是head部分,变化最大。yolov8模型与其前身的主要区别在于使用了无锚点检测(即从原先的耦合头变成了解耦头,并且从YOLOv......
  • NC | 基于长读长的结构变异检测工具VolcanoSV
    基于长reads进行结构变异的工具有很多,很多文章也进行过综合比较。今天分享一个新工具VolcanoSV。Github:https://github.com/maiziezhoulab/VolcanoSV结构变异(SV)对人类基因组多样性有重要贡献,并在精准医学中发挥关键作用。尽管单分子长读序列测序的进步为SV检测提供了突破性的......
  • 基于yolov10的行人跌倒检测系统,支持图像检测,也支持视频和摄像实时检测(pytorch框架)【py
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于yolov10的行人跌倒检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的行人跌倒检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,训......
  • 一种基于YOLOv8的高精度PCB缺陷检测算法(原创自研)
      ......
  • <数据集>二维码识别数据集<目标检测>
    数据集格式:VOC+YOLO格式图片数量:1601张标注数量(xml文件个数):1601标注数量(txt文件个数):1601标注类别数:1标注类别名称:['QR']序号类别名称图片数框数1QR16016286使用标注工具:labelImg标注规则:对类别进行画水平矩形框图片示例:标注示例:......