如何利用 Selenium 对已打开的浏览器进行爬虫

2023-11-17

大家好!

在对某些网站进行爬虫时,如果该网站做了限制,必须完成登录才能展示数据,而且只能通过短信验证码才能登录

这时候,我们可以通过一个已经开启的浏览器完成登录,然后利用程序继续操作这个浏览器,即可以完成数据的爬取了

具体操作步骤如下:

1-1 安装依赖

# 安装依赖
pip3 install selenium

1-2 Chrome 应用完整路径

右键查看 Chrome 浏览器的完整路径

比如:C:\Program Files\Google\Chrome\Application\chrome.exe

图片

1-3 命令行启动浏览器

接下来,在 CMD 终端中通过命令行启动 Chrome 浏览器

# 启动浏览器
cd C:\Program Files\Google\Chrome\Application && chrome.exe --remote-debugging-port=1234 --user-data-dir=“C:\selenum\user_data”

其中

–remote-debugging-port

指定浏览器调试端口号

PS:这里可以随机指定一个端口号,不要指定为已经被占用的端口号

–user-data-dir

用户配置文件目录

这里需要单独指定一个文件夹目录(不存在会新建),如果不显式指定该参数,运行会污染浏览器默认的配置文件

1-4 下载 ChromeDriver

根据 Chrome 浏览器版本下载对应的 ChromeDriver 驱动移动到某一个目录下

下载地址:

http://chromedriver.storage.googleapis.com/index.html

1-5 操作已打开的浏览器

假设上面开启的浏览器打开百度首页,我们现在编写一个简单的程序来继续操作上面的浏览器

注意的是,这里需要利用 debuggerAddress 指定浏览器的地址及端口号

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

chrome_options = Options()

# 指定已经打开浏览器的地址及端口号
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:1234")

# 注意:chrome版本与chromedirver驱动要保持一致
# 下载地址:http://chromedriver.storage.googleapis.com/index.html
s = Service(r"C:\Users\xingag\Desktop\111\chromedriver.exe")

driver = webdriver.Chrome(service=s, options=chrome_options)

# 操作浏览器
input_element = driver.find_element(By.ID, 'kw')

if input_element:
    # 关键字
    input_element.send_keys("AirPython")

    submit_element = driver.find_element(By.ID, 'su')

    if submit_element:
        # 点击搜索
        submit_element.click()

# 释放资源
# driver.close()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何利用 Selenium 对已打开的浏览器进行爬虫 的相关文章

随机推荐

  • STM32---stm32f103c8t6与stm32f103zet6之间的代码移植转换

    目录 一 将c8t6转换为zet6 1 修改启动文件 2 修改芯片 3 将MD修改为HD 4 下载器的修改 5 修改完成 编译成功 二 将zet6转换为c8t6 一 将c8t6转换为zet6 1 修改启动文件 最终结果如下 2 修改芯片 将
  • RedHat8(RHEL8)超详细安装教程--图文解说版

    目录 一 RHEL8介绍 二 产品地址 三 安装 1 文件 gt 新建虚拟机 快捷键 Ctrl N 2 这里我们选择 自定义 即可 gt 下一步 3 兼容性 保持默认 gt 下一步 4 稍后安装 gt 下一步 5 选择 Linux 操作系统
  • OBJ转GLTF

    obj转gltf的方法较多 这里采用cesium 1 下载cesuim开发包 2 进入cesium根目录 npm下载obj2gltf 没有npm的 自行安装 npm install obj2gltf save 3 将 obj mlt等文件复
  • 数据挖掘学习

    文章目录 绪论 定义 挖掘过程 数据准备 数据探索EDA 数据仓库 空间数据库 时间数据库和时序数据库 流数据 异构数据和遗产数据 数据挖掘的模式 数据准备 数据组成 什么是数据对象 什么是数据属性 数据搜集 数据质量分析 数据类型 考点
  • 国产操作系统产业

    操作系统是计算机的灵魂 目前国外操作系统品牌几乎垄断了巨大的中国市场 其中在桌面端 移动端的市占率分别超过94 75 98 86 根据Gartner的统计数据 2018年中国的操作系统市场容量在189亿以上 其中国外操作系统品牌几乎在中国市
  • Gossip协议

    Gossip协议 一 Gossip协议 1 1 工作原理 1 2 Gossip优点 1 3 Gossip传播方式 1 3 1 Anti Entropy 反熵 1 3 2 Rumor Mongering 谣言传播 1 3 3 结合 1 4 G
  • 初识C语言(二)

    目录 五 字符串 六 转义字符 七 注释 7 1注释的类型 7 1 1单行注释 7 1 2多行注释 7 2注释的使用方法 7 2 1解释代码功能注释 7 2 2提供代码示例注释 7 2 3禁用或屏蔽代码 八 选择语句 8 1if语句 8 1
  • 利用python3自动在36kr里查找自己感兴趣的内容

    最近常常在36kr网站的快讯及资讯 最新里查看自己感兴趣内容的及时信息 由于快讯及资讯 最新里信息更新得比较及时快速 自己也很难一直盯着看 故想着要是写个脚本让其自动在后天挂着每隔5分钟查询一次 有的话就写入txt档中并在控制台打印出来 这
  • 小孩学创客编程好还是学机器人好

    小孩学创客编程好还是学机器人好 小孩的学习一直都是很多家长们非常关心和重视的一件事情 很多的家长在培养孩子的学习的时候 可以说是十分的用心的 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有
  • 域环境的搭建的详细教程-220109

    参考链接 https mp weixin qq com s src 11 timestamp 1641696209 ver 3547 signature zTIDZEcpq zjwuEuZpbaaAxFfkkVxcLHeX4AuKT78bJ
  • 第九届蓝桥杯 2018年省赛真题 (Java 大学C组 )

    蓝桥杯 2018年省赛真题 Java 大学C组 第一题 哪天返回 第二题 猴子分香蕉 第三题 字母阵列 第四题 第几个幸运数 第五题 书号验证 第六题 打印大X 第七题 缩位求和 第八题 等腰三角形 第九题 小朋友崇拜圈 第十题 耐摔指数
  • RHCE——DNS的正反向解析

    一 实验要求 DNS配置正反向解析 二 实验过程 1 安装软件包 root localhost ll yum install bind y 2 备份bind软件的的配置文件 root localhost yum repos d cp a e
  • CMAKE学习——编译多个文件 & 多个目录

    大型工程会有很多文件 包括类的实现和定义 各种不同的模块交叉在一起 我们怎么用cmake方便的编译呢 例如有这么一个工程 我们现在想要编译的话 如果只选择了main cpp 则会提示 未定义的引用 因为我们头文件和实现分离 但我们只包含了头
  • 【云原生之Docker实战】使用Docker部署jenkins持续集成工具

    云原生之Docker实战 使用Docker部署jenkins持续集成工具 一 jenkins介绍 1 jenkins简介 2 jenkins功能 3 jenkins基本工作图 二 检查本地系统版本 三 检查本地docker状态 1 检查do
  • IDEA运行报错:类文件具有错误的版本 55.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。

    IDEA运行报错 类文件具有错误的版本 55 0 应为 52 0 请删除该文件或确保该文件位于正确的类路径子目录中 如果搜索资料 会看到minor major版本 但其实不叫这个名字 Sun公司会在大的版本升级时增加major数字 小更新或
  • 【python】自动化测试框架--nose

    目录 一 准备 二 nose介绍 三 看个简单的例子了解下 三 nose常用命令简单介绍 1 查看所有nose相关命令 2 执行并捕获输出 3 提供XUnit XML 格式的测试结果 并存储在nosetests xml文件中 主要为jenk
  • 程序员的自我修养--链接、装载与库

    中国科学技术大学软件学院 周艾亭 原创作品版权所有转载请注明出处 第一次接触 程序员的自我修养 的时候 的确怀有一种疑惑的态度的 因为潜意识告诉我 在计算机这一行 更强调的是实践动手 而XXX修养的显然不属于动手操作类 至少不是太适合我的需
  • 数据同步方案

    mysql 数据同步到elastic中 本文中不提及实现 仅提供方案 增量数据同步 方案一 通过logstash 官方提供的工具 快速实现数据同步 值得注意的是选择logstash时需要和elastic的版本做对应 由于elastic 版本
  • 多线程经典案例(生产者--消费者)

    多线程开发中有一个经典的操作案例 就是 生产者 消费者 案例 生产者不的生产产品 消费者不断地取走产品 此案例涉及线程同步 线程休眠 线程等待 线程唤起等操作以及之间是如何搭配使用的方法 示例讲解 本示例模拟中生产者由 厨师 担任 消费者由
  • 如何利用 Selenium 对已打开的浏览器进行爬虫

    大家好 在对某些网站进行爬虫时 如果该网站做了限制 必须完成登录才能展示数据 而且只能通过短信验证码才能登录 这时候 我们可以通过一个已经开启的浏览器完成登录 然后利用程序继续操作这个浏览器 即可以完成数据的爬取了 具体操作步骤如下 1 1