当前位置: 首页 > news >正文

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

相关文章:

  • [力扣题解] 200. 岛屿数量
  • Java——认识Java
  • 【Vue2入门技能树】:Vue2项目从入门到放弃所遇到的问题汇总
  • 【Docker学习】深入研究命令docker exec
  • SVM兵王问题
  • 摄像头应用测试
  • 牛逼!50.3K Star!一个自动将屏幕截图转换为代码的开源工具
  • 【fastapi+mongodb】使用motor操作mongodb
  • 给页面元素添加水印
  • Tomcat调优参数
  • Linux系统如何通过编译方式安装python3.11.3
  • Java——接口
  • Vue 2与Vue 3的区别
  • java图书电子商务网站的设计与实现源码(springboot+vue+mysql)
  • vue3父组件使用ref获取子组件的属性和方法
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Angularjs之国际化
  • Js基础知识(四) - js运行原理与机制
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • nginx 负载服务器优化
  • SAP云平台里Global Account和Sub Account的关系
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • 百度小程序遇到的问题
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 离散点最小(凸)包围边界查找
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 数据可视化之下发图实践
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #、%和$符号在OGNL表达式中经常出现
  • #1014 : Trie树
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (SpringBoot)第七章:SpringBoot日志文件
  • (多级缓存)多级缓存
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (南京观海微电子)——COF介绍
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)程序员技术练级攻略
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ******之网络***——物理***
  • **CentOS7安装Maven**
  • .Net 6.0 Windows平台如何判断当前电脑是否联网
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net core使用ef 6
  • .net开发引用程序集提示没有强名称的解决办法
  • .stream().map与.stream().flatMap的使用
  • /dev/sda2 is mounted; will not make a filesystem here!