网站首页 > 技术文章 正文
更新时间:2023年6月5日 11:45:33 作者:安乐昌
本文主要介绍如何实现自动化网页操作。里面有详细的流程步骤和代码示例,对我们的学习或者工作会有帮助。有需要的朋友可以参考一下。
目录
1 准备工作
推荐浏览器
1.1 安装包
激活虚拟环境,打开一个新的,输入以下代码:
python -m pip install selenium
如下图,安装成功,版本为4.7.2

关闭虚拟环境并打开新的虚拟环境
1.2 功能模块介绍
#引入time模块,实现延时
import time
#引入selenium库中的webdriver模块,实现对网页的操作
from selenium import webdriver
#引入By Class,辅助元素定位
from selenium.webdriver.common.by import By
#引入ActionChains Class,辅助鼠标移动
from selenium.webdriver.common.action_chains import ActionChains
2 实现 2.1 打开网页
#打开谷歌浏览器
driver = webdriver.Chrome()
#打开网页
driver.get('URL') #将URL替换为需要操作的网址
2.2 元件定位
为了控制网页,首先需要定位网页上的元素,通常是搜索框、选项、按钮等。
4.0以上版本更新了元素定位方式,需要使用函数。使用示例如下:
el = driver.find_element(By.NAME, "*")
首先,获取元素信息:
打开网页后按F12打开元素检查窗口
单击窗口中红框标记的图标,选择需要在页面上定位的元素并查看其代码。
一般需要定位的元素的代码都是从input开始的。下图是搜索框的代码。可以从代码中提取定位元素所需的信息:

可以根据以下信息来定位元素,但必须保证根据这些信息可以唯一地定位元素:
经过。*
姓名
名称=“*”
=“*”
ID
id=“*”
=“*”
X路径
复制完整的 XPath
如果根据其他信息无法唯一定位该元素,可以使用XPath进行定位。获取XPath的方式比较特殊。需要右键单击该代码行,在下拉列表中选择“复制完整XPath”,如下图所示:

2.3 元件控制
找到该元素后,您可以执行以下操作来控制该元素:
功能
点击()
点击
('*')
进入
清除()
清除
以文本输入为例,代码如下(*代表需要输入的文本):
el.send_keys('*')
如果你打开网页时需要控制的元素不在可见范围内,需要滑动鼠标定位,则必须使用它,否则可能会报错:找不到该元素。
ActionChains(driver).move_to_element(el).click().perform()
el.click()
上面的例子是点击操作。最好添加第二行以确保元素被单击。
找不到元素的另一个原因可能是网页尚未加载。在这种情况下,您可以使用延迟函数:
time.sleep(1)
2.4 弹出框的处理
如果点击按钮后,不是打开新页面,而是弹出一个窗口,需要在新窗口中进行操作,则需要通过以下代码进入新框架,否则可能会报错:该元素不能被发现。
driver.switch_to.frame(0)
然后继续按2.2定位元素。
关于实现自动化网页操作的步骤的文章到此结束。更多自动化网页操作请搜索 House之前的文章或继续浏览以下相关文章。希望大家以后多多支持 House!
猜你喜欢
- 2025-01-06 python qt5 编写gui界面 基于qt库,简单的主界面编写。#软件开发
- 2025-01-06 使用python的 turtle模块制作连续动画,页面刷新率
- 2025-01-06 Django网站框架 建个漂亮的网站就是这么简单呢
- 2025-01-06 自学Python进阶 - 界面UI和类class
- 2025-01-06 python爬虫中你不得不了解的网页分类
- 2025-01-06 Rich,最强大的界面和输出文本的python库
- 2025-01-06 Python 学生管理器:开始界面的实现
- 2025-01-06 5分钟学会用Python Jinja2模板引擎渲染HTML网页
- 2025-01-06 开发图形界面Tkinter、wxPython、PyQt、PySide选哪一个?
- 2025-01-06 手把手教你使用Python打造一款摸鱼倒计界面
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)