news 2026/4/18 5:13:05

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/4/18 5:10:15

Vue3利用ResizeObserver监听Textarea的尺寸动态调整表格tbody的maxHeight

调整表格tbody的maxHeight推荐方式是直接修改css,本文主要描述的是不推荐但使用ResizeObserver再进一步修改dom的maxHeight(之所以选择ResizeObserver这个API是因为Textarea默认没有resize事件),从而达到不溢出可视窗口&#xff0…

作者头像 李华
网站建设 2026/4/18 5:06:32

命令执行绕过

直接闹麻了 &#xff0c;命令执行绕不过空格的来了&#x1f923;&#xff0c;都能执行命令了&#xff0c;空格绕不过去直接全盘皆失赶紧补充一下自己的命令执行绕过知识&#x1f62d;空格绕过\t%09${IFS}$IFS$9$IFS%20{} 例如 &#xff1a;{cat,1.txt}<或是 << 例如 :…

作者头像 李华
网站建设 2026/3/31 19:45:57

大神优化 PDF工具箱神器,强烈推荐

PDF工具箱之前也给大家推荐过好&#xff0c;今天在给大家推荐一个非常好用功能有一些不一样的软件。 ABBYY FineReader PDF工具箱 这款PDF工具箱是俄罗斯大神优化出品的&#xff0c;功能强大&#xff0c;它集成了OCR 文字识别、文档处理、文件转换和索引、数据捕获、语言翻译等…

作者头像 李华
网站建设 2026/4/3 4:13:36

【光照】[PBR][法线分布]GGX实现方法对比

GGX的全称与基本概念‌GGX的全称‌&#xff1a;Ground Glass X (或 Generalized Trowbridge-Reitz Distribution)‌首次提出‌&#xff1a;Walter等人在2007年发表的论文《Microfacet Models for Refraction through Rough Surfaces》中提出GGX是一种‌法线分布函数‌(Normal D…

作者头像 李华
网站建设 2026/4/16 21:20:04

YC创业名录:精准对接高潜力初创公司

一、拆解需求 1. 产品核心定义&#xff1a;是什么、给谁用、做什么 产品本质&#xff1a;依托 Y Combinator&#xff08;YC&#xff09;投资生态的「高价值创业公司名录精准对接平台」&#xff0c;核心是整合 YC 自2005年以来投资的优质创业公司资源&#xff0c;提供多维度检索…

作者头像 李华
网站建设 2026/4/17 4:36:05

计算机毕设项目推荐—天气数据分析预测可视化分析预测系统

天气数据分析预测可视化分析预测系统 01开发环境 1.1 Python技术 1.2 MySQL数据库 1.3 B/S 结构 1.4 Vue.js 技术 02系统图片展示03代码展示 # 省份或者城市地图 # &#xff08;学习交流VX&#xff1a;S20231025S &#xff09; DEFAULT_HOST "https://assets.pyecharts…

作者头像 李华