伪css的处理方式

import re

# 正则表达式模式,匹配以 'cl' 开头,后跟任意数字,然后是 ' a::before'
pattern_cl8 = r'(cl8)\s+a::before'

# 在源码中查找匹配项
matches_cl8 = re.findall(pattern_cl8, page_source, re.IGNORECASE)

# 如果找到 'cl8 a::before',存储它的类名
if matches_cl8:
    excluded_class = matches_cl8[0]
else:
    excluded_class = None

# 正则表达式模式,匹配以 'cl' 开头的类,但排除 'cl8'
if excluded_class:
    pattern_cl_exclude = r'(?<!{})\.cl\d+\s+.+'.format(re.escape(excluded_class))
else:
    pattern_cl_exclude = r'\.cl\d+\s+'

# 正则表达式模式,匹配 .ctnr 类,但不包括 'cl' 开头的类
pattern_ctnr = r'<div[^>]*class="ctnr[^"]*"[^>]*>(.*?)<\/div>'

# 在源码中查找匹配项,排除 'cl' 开头的类
matches_ctnr = []
for match in re.findall(pattern_ctnr, page_source, re.IGNORECASE | re.DOTALL):
    # 检查是否包含 'cl' 开头的类,但不包括 'cl8'
    if not re.search(pattern_cl_exclude, match, re.IGNORECASE):
        matches_ctnr.append(match)

# 输出匹配结果
if not matches_ctnr:
    print("没有找到符合条件的 .ctnr 元素")
else:
    print("找到的 .ctnr 元素(排除 'cl8' 类):")
    for element in matches_ctnr:
        print(element)
 

--------------------------------------------------------

# 首先,确保已经获取了页面源码
page_source = driver.page_source

# 创建一个 CSS 选择器,它匹配 .ctner 类但不包含 cl8 类
css_selector = ".ctner:not([class*='cl8'])"

# 使用 Selenium 定位元素
elements = driver.find_elements_by_css_selector(css_selector)

# 输出匹配结果
if not elements:
    print("没有找到符合条件的元素")
else:
    print("找到的元素(包含 .ctner 类但不包含 cl8 类):")
    for element in elements:
        print(element.get_attribute("outerHTML"))
 

框架(iframe)本身不能被“点击”打开,因为框架是用来嵌套另一个HTML文档的容器。但是,你可以先切换到框架内部,然后在框架里找到并点击需要的元素。之前的回答中已经包含了这样的逻辑:先定位到iframe,然后切换到该iframe,接着找到并点击iframe内的链接。这里再次展示具体的步骤: 

# 等待并切换到具有唯一高度属性的iframe
wait = WebDriverWait(driver, 30)
unique_height = "644px"  # 根据实际情况调整这个值
frame_locator = (By.XPATH, f"//iframe[starts-with(@id, 'w') and contains(@style, 'height: {unique_height};')]")
target_frame = wait.until(EC.presence_of_element_located(frame_locator))
driver.switch_to.frame(target_frame)  # 切换到找到的iframe# 在iframe内部定位并点击链接
link_xpath = '//a[@data-src]'  # 请根据实际情况调整XPath
link_element = wait.until(EC.element_to_be_clickable((By.XPATH, link_xpath)))
link_element.click()# 执行点击后,如果需要回到默认内容(即跳出iframe),可以使用:
# driver.switch_to.default_content()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从感知机到神经网络

感知机 一、感知机是什么二、用感知机搭建简单逻辑电路2.1 与门2.2 与非门2.3 或门 三、感知机的局限性3.1 异或门3.2 线性和非线性 四、多层感知机4.1 已有门电路的组合4.2 Python异或门的实现 五、感知机模型5.1 感知机模型5.2 感知机损失函数5.3 感知机学习算法 六、感知机原…

富文本编辑器与 Markdown 编辑器的区别与相同点

富文本编辑器与 Markdown 编辑器的区别与相同点 ​ 富文本编辑器和 Markdown 编辑器都是用于创建文本内容的工具&#xff0c;但它们在工作方式、功能和适用性方面存在一些关键差异。 相同点 文本编辑: 两种编辑器都允许用户创建和编辑文本内容&#xff0c;包括基本的文本格式…

对澳洲后端软件工程工作一些术语分析

以下摘自Seek(澳洲求职网站)上一份软件工程师招聘的工作描述job description, 找工作很重要的一件事就是了解求职的公司要求requirement。本章是对这份工作描述的分析&#xff0c;和term的笔记 Job Description What you can bring to the team: • Minimum 5 years of Back…

使用Pyecharts构建Map对象无法显示颜色--解决

我们在做数据可视化的过程中&#xff0c;可能需要使用到地图作为数据可视化的工具&#xff1b; 包括世界地图、国家地图、省市区地图等&#xff1b; 如果在你设置好颜色数据匹配后&#xff0c;可视化地图未显示对应数据的颜色&#xff0c;那么请检查是否出现以下情况&#xf…

安全分析[1]之网络协议脆弱性分析

文章目录 威胁网络安全的主要因素计算机网络概述网络体系结构 网络体系结构脆弱性分组交换认证与可追踪性尽力而为匿名与隐私对全球网络基础实施的依赖无尺度网络互联网的级联特性中间盒子 典型网络协议脆弱性IP协议安全性分析IPSec&#xff08;IP Security)IPv6问题 ICMP协议安…

宝石收集,tarjan

0宝石收集 - 蓝桥云课 (lanqiao.cn) nint(input()) s0input() mint(input()) mp[[] for i in range(n1)] for i in range(m):a,bmap(int,input().split())a1b1mp[a].append(b)import sys sys.setrecursionlimit(100000000) dfn[0 for i in range(n1)] low[0 for i in range(n1…

HTML与CSS的学习

什么是HTML,CSS&#xff1f; HTML(HyperText Markup Language):超文本标记语言。 超文本:超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等 标记语言:由标签构成的语言 >HTML标签都是预定义好的。例如:使用<a>…

c语言:模拟strlen(三种方法)最全版本

1.计数的方法 #include <stdio.h> #include <assert.h> int my_strlen(const char * str)//const的使用优化 {int count0;assert(str)while(*str){count;str;}return count; } 2.用指针的方法&#xff08;指针-指针&#xff09; #include <stdio.h> #incl…

Visual Studio 的调试(一)

最近事儿很多昂&#xff0c;更新速度相较以往慢了许多&#xff0c;备考六月份的四级&#xff0c;还有学校的期末等等&#xff0c;事儿真的太多啦&#xff0c;所以后面的更新速度也会放慢一点&#xff0c;实在是抽不开身啊诸位&#xff0c;相当抱歉&#xff0c;还望诸君见谅 言…

简述Vue 如何检测数组变化

Vue 2.0 在检测数组变化时&#xff0c;由于 JavaScript 的限制&#xff08;Object.defineProperty 不能直接用于数组元素&#xff09;&#xff0c;它采用了特殊的策略来跟踪数组的变更。以下是 Vue 2.0 检测数组变化的主要方法&#xff1a; 数组方法重写&#xff1a; Vue 重写了…

MySQL大表删除方案

1.问题 在生产环境中&#xff0c;执行大表删除操作时&#xff0c;很容易因为占用了大量io资源导致其他事务被阻塞&#xff0c;最终事务不断堆积导致MySQL挂掉。 2.drop命令 drop命令&#xff0c;MySQL主要干了两件事&#xff1a; 清除buffer pool缓冲&#xff08;内存&…

STL源码刨析:序列式容器之vector

目录 1.序列式容器和关联式容器 2.vector的定义和结构 3.vector的构造函数和析构函数的实现 4.vector的数据结构以及实现源码 5.vector的元素操作 前言 本系列将重点对STL中的容器进行讲解&#xff0c;而在容器的分类中&#xff0c;我们将容器分为序列式容器和关联式容器。本章…

go语言初识(四)

本博客涉及内容&#xff1a;数组 数组 数组定义 在 go 语言中&#xff0c;数组是一种固定大小的数据结构&#xff0c;用于存储相同类型的元素。数组的定义方式如下&#xff1a; var arrayName [size]Type可以通过len()函数测试数组的长度&#xff1a; func main() {var a …

二.对配置文件中数据库密码进行加密

代码&#xff1a; public class DruidEncryptUtils {private static String publicKey;private static String privateKey;static {try {String[] keyPair ConfigTools.genKeyPair(512);privateKey keyPair[0];System.out.println("privateKey:"privateKey);publi…

Docker Hub注册及上传自定义镜像

说明&#xff1a;本文介绍如何注册Docker Hub&#xff0c;及将自己自定义镜像上传到Docker Hub上&#xff1b; 注册Docker Hub 浏览器输入&#xff1a;http://hub.docker.com/&#xff0c;进入Docker Hub官网 注&#xff1a;如果无法访问&#xff0c;可在GitHub上下载一个Ste…

Git--本地仓库

文章目录 工作区和暂存区工作区&#xff08;Working Directory&#xff09;版本库&#xff08;Repository&#xff09; 初始化git仓库添加文件到版本库步骤 查看修改内容查看工作区和暂存区状态已add文件已修改/新增 的未add文件git跟踪修改原理 查看提交历史版本回退撤销修改撤…

如何解决Redis缓存雪崩问题?

解决Redis缓存雪崩问题,可以从多个方面入手来确保系统在高并发和缓存失效时能够保持稳定运行。以下是一些具体的解决策略: 合理设置缓存过期时间: 避免大量缓存设置相同的过期时间,这样会导致在某一时刻缓存同时失效,造成缓存雪崩。可以使用Redis的EXPIRE命令或TTL命令,结…

白话文docker-002

第三章&#xff1a;Docker镜像的使用与管理 引言 Docker镜像是Docker生态中的核心组件&#xff0c;它们是轻量级的、可执行的软件包&#xff0c;包含了运行一个应用所需的所有内容。在本章中&#xff0c;我们将深入探讨如何创建和修改Dockerfile来构建镜像&#xff0c;获取、…

python基础(1) -- 基本数据类型与变量

基本数据类型与变量 1.1注释 优点&#xff1a; 1.代码说明 2.不让解释器执行注释的那句话 1.1.1 单行数据 语法&#xff1a; # #开头后面都是注释&#xff0c;python解释器会忽略掉注释 单行注释快捷键&#xff1a;ctrl&#xff1f;1.1.2 多行注释 """ &qu…

信息学奥赛初赛天天练-12-数论-整除问题

更多资源请关注纽扣编程微信公众号 整除的性质 1 整除性 若 &#x1d44e; 和 &#x1d44f; 都为整数&#xff0c; &#x1d44e; 整除 &#x1d44f; 是指 &#x1d44f; 是 &#x1d44e; 的倍数&#xff0c;&#x1d44e; 是 &#x1d44f; 的约数&#xff08;或者叫 因…