python之selenium接管打开的谷歌浏览器窗口——隐藏爬虫特征,跳过登陆弹窗验证

news2024/11/25 10:59:08

文章目录

  • 引言
  • 使用selenium接管打开的谷歌浏览器
  • 总结

引言

我们知道通过selenium打开的浏览器与本地电脑上打开的浏览器是不同的,selenium通过插件打开浏览器页面会显示爬虫特征信息,且在访问某些网站时,很容易被检测出是一个爬虫机器,从而强制跳出登陆弹窗;有的登陆弹窗还会拒绝你的登陆验证;如:

案例:通过selenuium打开淘宝主页搜索 ‘美食’,进入详情页,跳出登陆弹窗**

# 导入模块
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

# 将参数传入浏览器对象,接管浏览器
browser = webdriver.Chrome()

# 访问网页
browser.get('https://www.taobao.com')

# 向搜索框中输入 '美食'
input = browser.find_element(By.ID, 'q')
input.send_keys('美食')
input.send_keys(Keys.ENTER)  # 点击回车,进入详情页

执行效果:
在这里插入图片描述


解决方法:我们可以通过打开本地谷歌浏览器,访问淘宝,不会跳出登陆弹窗;用动图显示: 在这里插入图片描述

使用selenium接管打开的谷歌浏览器

从上面我们知道本地谷歌浏览器访问淘宝页面时,不会跳出弹窗登陆验证,那么如何使用python代码来自动化的打开浏览器,并利用selenium接管打开的浏览器,对其进行控制;如下:

借鉴文章:https://blog.csdn.net/weixin_45081575/article/details/126389273

直接上代码:

# 导入模块
import os # 用于执行windows命令
from selenium import webdriver
from selenium.webdriver.common.by import By  # 选择器,用于筛选网页数据
from selenium.webdriver.common.keys import Keys   # 按键,指代电脑上的某些按键

# 用os.popen方法执行windows命令,打开谷歌浏览器;注意:也可以手动打开浏览器,这里我通过os模块用命令打开
os.popen('start chrome --remote-debugging-port=9527 --user-data-dir=""')

# selenium接管浏览器已经打开的浏览器
# 1、创建文本对象
options = webdriver.ChromeOptions()
# 2、向文件对象中写入参数
options.add_experimental_option("debuggerAddress","127.0.0.1:9527")
# 3、将参数传入浏览器对象,接管浏览器
browser = webdriver.Chrome(options=options)
'''
注意:selenium 一次只能控制一个浏览器页面,若打开多个浏览器标签或窗口,
那么只有最初打开的窗口会受selenium控制
'''

# 访问网页
browser.get('https://www.taobao.com')

# 向搜索框中输入 '美食'
input = browser.find_element(By.ID, 'q')
input.send_keys('美食')
input.send_keys(Keys.ENTER)  # 点击回车,进入详情页,不会跳出登陆弹窗
print(browser.page_source) # 返回网页源码

执行效果:
在这里插入图片描述

总结

总的来说,直接使用selenium打开谷歌浏览器,在访问很多网站时,容易出现各种验证,而通过本地谷歌浏览器去在访问这些网站时,出现验证的几率很小,当然不是所有的网站都是这样,有些网站必须要登陆才能显示页面,那么只能老老实实去登陆验证了;上述方法就是通过os模块调用windows命令打开本地谷歌浏览器后,在通过selenium去接管打开的浏览器,这样就可以使用selenium控制本地谷歌浏览器了

爬虫案例推荐:https://blog.csdn.net/m0_59470317/article/details/142902162

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十五周:机器学习

目录 摘要 abstrct 一、HW3——食物图片分类CNN 二、GAN计算推导 1、引入 2、最大似然估计 3、divergence的计算 4、总结 三、GAN的架构——fGAN 1、f-divergence 2、共轭函数 3、connetction with GAN 总结 摘要 本周进一步学习了GAN基本原理,主…

element el-tree 自定义图标

除了自定义以外,下方代码还包含 tree自动展开 点击节点后节点聚焦 节点的click事件 节点查询 <template><el-inputplaceholder"请输入要查询的节点"v-model"filterText"clearable></el-input><el-treehighlight-currentclass&quo…

【RabbitMQ】RabbitMQ 的七种工作模式介绍

目录 1. Simple(简单模式) 2. Work Queue(工作队列) 3. Publish/Subscribe(发布/订阅) 4. Routing(路由模式) 5. Topics(通配符模式) 6. RPC(RPC通信) 7. Publisher Confirms(发布确认) 上一篇文章中我们简单认识了RabbitM1: 【RabbitMQ】RabbitMQ 的概念以及使用Rabb…

【Qt】窗口关闭提示框

在关闭QWdiget窗口时弹出提示框 重写**closeEvent**函数 void closeEvent(QCloseEvent* event) override;QMessageBox *msgBox new QMessageBox(QMessageBox::Question, "信息提示", "是否保存当前数据&#xff1f;", QMessageBox::Save | QMessageBox::N…

github克隆项目中的子模块submodule时遇到“无法访问远程仓库,请检查权限“

问题描述 在拉取仓库的时候发现了新东西。 仓库中有两个文件夹提示 点击之后&#xff0c;发现跳转到了另一个仓库 &#xff0c;原来这是仓库的子模块&#xff0c;第一次见&#xff0c;也就是仓库中包含了其他的的仓库&#xff0c;就是这么简单的原理。 但是在拉取仓库以后发现…

VScode环境配置

目录 好用插件推荐 1.Auto Rename Tag 2.openbrowser 3.实时预览&#xff08;推荐&#xff09; VSCode常用的快捷键 1. 快速复制一行 2.快速复制一行代码选定多个相同的单词 3. 添加多个光标 4. 全局替换某写单词 5. 快速定位到某一行 6. 选择某个区块 7. 放大缩…

高一全栈开发;国产 Arc 浏览器;Tauri 2.0 发布 | 生活周刊 #3

发现新应用 Vectorcraftr Vectorcraftr 提供免费可商用的插画库&#xff0c;风格有很多&#xff0c;自行食用 书立 一款功能强大、特性丰富的笔记软件&#xff0c;包含富文本&#xff0c;双链&#xff0c;表格&#xff0c;富目录树&#xff0c;WebDAV &#xff0c;自由导出等…

WPF 为button动态设置不同的模板

有时候需要动态的设置一些按钮的状态模板。使一个button显示不同的内容&#xff0c;比如Button未点击安装显示&#xff1a; 安装后显示&#xff1a; 可以通过设置button的content&#xff0c;通过content来设置不同的模板来实现功能&#xff0c;以下是代码&#xff1a; MainWi…

【消息队列】Kafka从入门到面试学习总结

国科大学习生活&#xff08;期末复习资料、课程大作业解析、大厂实习经验心得等&#xff09;: 文章专栏&#xff08;点击跳转&#xff09; 大数据开发学习文档&#xff08;分布式文件系统的实现&#xff0c;大数据生态圈学习文档等&#xff09;: 文章专栏&#xff08;点击跳转&…

CentOS7安装Gitlab服务

文章目录 前言一、安装依赖二、安装gitlab1、上传安装2、修改配置 三、启动gitlab服务四、修改密码五、设置为中文&#xff08;低版本有问题&#xff09;六、常用命令 前言 文中gitlab版本为&#xff1a; gitlab-ce-14.2.7 一、安装依赖 gitlab需要安装如下依赖&#xff0c;否…

Linux编辑器-vim的配置及其使用

vim是一种多模式的编辑器&#xff1a; 1.命令模式&#xff08;默认模式&#xff09;&#xff1a;用户所有的输入都会当作命令&#xff0c;不会当作文本输入。 2.插入模式&#xff1a;写代码&#xff0c; 按「 i 」切换进入插入模式「 insert mode 」&#xff0c;按 “i” 进入…

2024/10/13周报

文章目录 摘要Abstract文献阅读题目1. 背景与问题提出2. 提出的CLATT方法2.1 卷积神经网络&#xff08;CNN&#xff09;2.2 长短期记忆网络&#xff08;LSTM&#xff09;2.3 注意力机制2.4 滑动窗口方法 3. 实验设计与结果3.1 数据集3.2 实验基线与评价指标3.3 实验结果与分析 …

使用清华大学开源软件镜像站下载JDK

在软件开发和日常使用中&#xff0c;Java Development Kit&#xff08;JDK&#xff09;是不可或缺的一部分。它提供了Java运行环境和开发工具&#xff0c;使得开发者可以编写、编译和运行Java应用程序。本文将指导你如何从清华大学开源软件镜像站&#xff08;TUNA&#xff09;下…

通信工程学习:什么是UART通用异步收发器

UART&#xff1a;通用异步收发器 UART&#xff0c;全称Universal Asynchronous Receiver/Transmitter&#xff0c;即通用异步收发传输器&#xff0c;是一种广泛应用于嵌入式领域的串行、异步、全双工通信协议。以下是关于UART的详细介绍&#xff1a; 一、定义与特点 定义&…

数据分析:R语言计算XGBoost二分类模型的SHAP值

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍SHAP用途计算方法:应用加载R包导入数据建模平均SHAP值计算单个样本的每个特征的SHAP值蜜蜂图依赖图单个样本的SHAP解释(Force Plot)其他方法计算SHAP值单个个体预测结果系统信息…

MLM之Llama-3:Llama 3.2的简介、安装和使用方法、案例应用之详细攻略

MLM之Llama-3&#xff1a;Llama 3.2的简介、安装和使用方法、案例应用之详细攻略 目录 Llama 3.2 简介 1、Llama 3.2 的特点 2、模型评估 轻量级指令调优基准 视觉指令调整基准 Llama 3.2 的安装和使用方法 1、下载模型 2. 开发环境准备 3. 使用模型进行推理和微调 4…

Ubuntu命令行快速部署C++语言的GDAL库

本文介绍在Linux系统的Ubuntu电脑中&#xff0c;在命令行中一句代码快速配置C 环境下的gdal库的方法。 在文章Ubuntu基于Docker快速配置GDAL的Python、C环境&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/133433838&#xff09;中&#xff0c;我们就介…

【JVM】内存模型

文章目录 内存模型的基本概念案例 程序计数器栈Java虚拟机栈局部变量表栈帧中局部变量表的实际状态栈帧中存放的数据有哪些 操作数栈帧数据 本地方法栈 堆堆空间是如何进行管理的? 方法区静态变量存储 直接内存直接内存的作用 内存模型的基本概念 在前面的学习中,我们知道了字…

施磊C++ | 进阶学习笔记 | 3.绑定器和函数对象、lambda表达式

三、绑定器和函数对象、lambda表达式 文章目录 三、绑定器和函数对象、lambda表达式3.1模板的完全特例化和非完全&#xff08;部分&#xff09;特例化1.完全特例化和非完全&#xff08;部分&#xff09;特例化2.模板的实参推演 3.2 C STL中的绑定器bind1stbind2nd自己实现一个b…

深度学习——线性神经网络(三、线性回归的简洁实现)

目录 3.1 生成数据集3.2 读取数据集3.3 定义模型3.4 初始化模型参数3.5 定义损失函数3.6 定义优化算法3.7 训练 在上一节中&#xff0c;我们通过张量来自定义式地进行数据存储和线性代数运算&#xff0c;并通过自动微分来计算梯度。实际上&#xff0c;由于数据迭代器、损失函数…