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

文章目录

引言

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

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

python 复制代码
# 导入模块
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

直接上代码:

python 复制代码
# 导入模块
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

相关推荐
hummhumm14 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
杜小满18 分钟前
周志华深度森林deep forest(deep-forest)最新可安装教程,仅需在pycharm中完成,超简单安装教程
python·随机森林·pycharm·集成学习
databook1 小时前
『玩转Streamlit』--布局与容器组件
python·机器学习·数据分析
nuclear20112 小时前
使用Python 在Excel中创建和取消数据分组 - 详解
python·excel数据分组·创建excel分组·excel分类汇总·excel嵌套分组·excel大纲级别·取消excel分组
躺平的花卷2 小时前
Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存
爬虫·excel
Lucky小小吴2 小时前
有关django、python版本、sqlite3版本冲突问题
python·django·sqlite
zhang-zan3 小时前
nodejs操作selenium-webdriver
前端·javascript·selenium
GIS 数据栈3 小时前
每日一书 《基于ArcGIS的Python编程秘笈》
开发语言·python·arcgis
爱分享的码瑞哥3 小时前
Python爬虫中的IP封禁问题及其解决方案
爬虫·python·tcp/ip
傻啦嘿哟4 小时前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel