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

news/2025/3/31 11:05:20/

大家好!

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

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

具体操作步骤如下:

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 Bychrome_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()

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

在这里插入图片描述

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


http://www.ppmy.cn/news/1101228.html

相关文章

图解系列 图解直播推拉流流程

文章目录 流程推流流程扩展 拉流流程 文件加密流程 常用开源流媒体服务器为SRS和MTX 流程 涉及到的组件 主播(推流端)观众(播放器)业务服务【持有一些私有Key,如rtmpKey等】流媒体服务器【SRS/MTX】CDN【持有公钥】 …

DNS(域名解析系统)

含义 当我们在上网要访问莫个服务器的时候,就需要知道服务器的IP地址,但IP地址是一串数字,虽然这串数字用点分十进制已经清晰不少了,但还是不利于人们记忆和传播,于是人们使用单词来代替IP地址(例如baidu&a…

AJAX学习笔记9 搜索联想自动补全

AJAX学习笔记8 跨域问题及解决方案_biubiubiu0706的博客-CSDN博客 其实就一个功能 搜索联想 自动补全 键盘按下事件keydown 键盘弹起事件keyup 做模糊查询 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><t…

3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中&#xff0c;理解和使用KITTI 数据集&#xff0c;包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。 目录 1、KITTI数据集中3D框可视化的效果 2、先看个视频&#xff0c;了解KITTI 的基本情况 3、来到KITTI官网&#xff0c;下…

AI绘画:StableDiffusion实操教程-诛仙-碧瑶(附高清图下载)

前段时间我分享了StableDiffusion的非常完整的教程&#xff1a;“AI绘画&#xff1a;Stable Diffusion 终极宝典&#xff1a;从入门到精通 ” 不久前&#xff0c;我与大家分享了StableDiffusion的全面教程&#xff1a;“AI绘画&#xff1a;Stable Diffusion 终极宝典&#xff…

计算机专业毕业设计项目推荐01-生产管理系统(JavaSpringBoot+原生Js+Mysql)

生产管理系统&#xff08;JavaSpringBoot原生JsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以…

多态语法,析构多态

目录 多态的构成条件 虚函数重写&#xff1a; 多态的构成条件 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为。比如 Student 继承了 Person 。 Person 对象买票全价&#xff0c; Student 对象买票半价。 继承中要 构成多态两个条件 …

OpenCV 08(图像滤波器 算子)

一、 索贝尔(sobel)算子 边缘是像素值发生跃迁的位置&#xff0c;是图像的显著特征之一&#xff0c;在图像特征提取&#xff0c;对象检测&#xff0c;模式识别等方面都有重要的作用。 人眼如何识别图像边缘? 比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易…