news 2026/9/30 23:07:55

python(爬虫selenium)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python(爬虫selenium)

Selenium 是一款用于模拟浏览器行为的自动化测试工具,也是爬虫领域中处理动态渲染页面(如 JS 加载、Ajax 请求、登录验证等)的核心工具。

一、导入库

from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.by import By import time # edge_options =Options() edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # ##edge浏览器的地址 driver = webdriver.Edge(options=edge_options)

1.导入相关库的函数

from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By

2.导入edge浏览器的内核

edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

二、核心操作浏览器与页面控制

1.基础操作

打开页面driver.get("https://www.example.com")访问目标 URL
刷新页面driver.refresh()刷新当前页面
前进 / 后退driver.forward()/driver.back()模拟浏览器前进 / 后退
窗口大小driver.set_window_size(1920, 1080)设置窗口尺寸
全屏driver.maximize_window()窗口最大化
关闭窗口driver.close()关闭当前标签页
退出浏览器driver.quit()关闭所有标签页并退出驱动(必写,否则进程残留)

2.页面元素定位

定位元素是 Selenium 操作的基础,优先使用唯一标识(id/name),其次用 XPath/CSS 选择器,避免用索引(易变)。

IDfind_element(By.ID, "id值")driver.find_element(By.ID, "username")元素有唯一 ID
Namefind_element(By.NAME, "name值")driver.find_element(By.NAME, "password")元素有 name 属性
Class Namefind_element(By.CLASS_NAME, "类名")driver.find_element(By.CLASS_NAME, "btn-submit")类名唯一
Tag Namefind_element(By.TAG_NAME, "标签名")driver.find_element(By.TAG_NAME, "input")标签唯一(如单个 input)
Link Textfind_element(By.LINK_TEXT, "链接文本")driver.find_element(By.LINK_TEXT, "登录")精准匹配超链接文本
Partial Link Textfind_element(By.PARTIAL_LINK_TEXT, "部分文本")driver.find_element(By.PARTIAL_LINK_TEXT, "登")模糊匹配超链接
XPathfind_element(By.XPATH, "XPath表达式")driver.find_element(By.XPATH, '//*[@id="username"]')复杂定位(万能)
CSS Selectorfind_element(By.CSS_SELECTOR, "CSS表达式")driver.find_element(By.CSS_SELECTOR, "#username")高效定位(推荐)

3.元素交互

# 1. 点击元素(按钮/链接/复选框) btn_elem = driver.find_element(By.CLASS_NAME, "submit-btn") btn_elem.click() # 2. 获取元素属性/文本 elem = driver.find_element(By.XPATH, '//div[@class="content"]') print(elem.text) # 获取元素可见文本 print(elem.get_attribute("href")) # 获取href属性 print(elem.get_attribute("innerHTML")) # 获取内部HTML # 3. 输入文本(先清空再输入) input_elem = driver.find_element(By.ID, "username") input_elem.clear() # 清空输入框 input_elem.send_keys("test123") # 输入内容

执行Javascript 代码,可以将页面滚动到底部。
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')

4.等待渲染

可以通过time函数用sleep方法等待

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 7:45:47

机器视觉介绍

机器视觉的定义机器视觉(Machine Vision)是指通过计算机和图像处理技术模拟人类视觉功能,实现对物体识别、测量、定位和分析的自动化系统。广泛应用于工业检测、自动驾驶、医疗影像等领域。机器视觉的核心技术图像采集 通过摄像头、工业相机或…

作者头像 李华
网站建设 2026/9/29 23:28:55

基于鲹鱼优化算法(GTO)优化Canopy聚类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码获取及仿…

作者头像 李华
网站建设 2026/9/29 9:21:21

IMU和GPS ekf融合定位 从matlab到c++代码实现 基于位姿状态方程

IMU和GPS ekf融合定位 从matlab到c代码实现 基于位姿状态方程,松耦合 文档且详细 蹲在实验室捯饬了三天咖啡机之后,我终于把IMU和GPS的EKF融合算法从Matlab搬到了C。这事儿就像把乐高积木从说明书模式切换到自由创作模式——你知道原理是对的&#xff0…

作者头像 李华
网站建设 2026/9/30 19:56:42

无人值守地区的可靠选择 的远程监测能力

对于环境恶劣的高山、海岛、边境、自然保护区等无人值守的边远地区,建立自动气象站面临供电难、维护难、环境苛刻度高等多重挑战。FST200-207抗冰冻型超声波风速风向传感器的低功耗、高可靠和易集成的特点,使其成为此类应用的理想解决方案。 超声波风速…

作者头像 李华
网站建设 2026/9/29 11:24:09

linux部署分布式redis集群保姆级教程

一、Redis常用的三种集群模式主从(单体架构项目)通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数…

作者头像 李华
网站建设 2026/9/30 4:23:31

鸿蒙开发者的价值跃迁:把经验变成“智能资产”,让AI为你赋能

在鸿蒙生态加速扩张的当下,开发者之间的竞争早已不再是“会不会用技术”的较量,而是“能不能让经验产生持续价值”的比拼。近期,一场鸿蒙开发者闭门交流会中的真实案例,深刻揭示了这一核心趋势。某互联网公司承接了智慧医疗领域的…

作者头像 李华