0

0

使用 Selectolax 选择不带 class 属性的 p 标签

霞舞

霞舞

发布时间:2025-09-26 17:58:14

|

526人浏览过

|

来源于php中文网

原创

使用 selectolax 选择不带 class 属性的 p 标签

本文介绍了如何使用 Python 的 Selectolax 库选择 HTML 中不带 class 属性的

标签及其子元素。重点讲解了使用 css() 方法配合 :not([class]) 选择器来定位目标元素,并提供示例代码演示了如何提取所需文本内容。同时,建议使用 Lexbor 作为 Selectolax 的后端,以获得更好的性能和维护性。

Selectolax 是一个快速的 HTML 解析库,它允许你使用 CSS 选择器来查找和提取 HTML 文档中的元素。当需要选择特定属性不存在的元素时,可以使用 :not([attribute]) 选择器。

选择不带 class 属性的 span 标签

假设我们有以下 HTML 代码:

123 My Rd. Suite 100 Anywhere , TX 12345

我们的目标是选择

标签(带有 class="card_street" 属性)下所有不带 class 属性的 标签。以下是如何使用 Selectolax 实现的:

from selectolax.parser import HTMLParser

html = """

123 My Rd. Suite 100 Anywhere , TX 12345

""" tree = HTMLParser(html) # 选择所有不带 class 属性的 span 标签 for node in tree.css('p[class="card_street"] > span:not([class])'): print(node.text())

这段代码首先解析 HTML 字符串,然后使用 css() 方法和选择器 p[class="card_street"] > span:not([class]) 来选择目标 标签。> 符号表示直接子元素。:not([class]) 选择器确保我们只选择那些没有 class 属性的 标签。

提取文本内容

上面的代码会输出以下内容:

Subversion安装使用说明文档 WORD版
Subversion安装使用说明文档 WORD版

本文档主要讲述的是Subversion安装使用说明文档;Subversion是一个自由/开源的版本控制系统,正逐步替代CVS。Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。 Subversion可支持版本化的目录、真实的版本历史、原子提交、版本化的无数据、可选的网络层、一致的数据操作、高效的分支和标签操作和可修改性。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
 Anywhere
, TX
 12345

这是因为我们迭代了所有匹配的节点,并使用 node.text() 方法提取了每个节点的文本内容。

使用 Lexbor 后端

Selectolax 默认使用 Modest 作为后端,但建议使用 Lexbor 作为后端,因为它具有更好的性能和可维护性。要使用 Lexbor,需要安装 selectolax[lexbor]:

pip install selectolax[lexbor]

然后,你可以像这样使用它:

from selectolax.lexbor import LexborHTMLParser

html = """

123 My Rd. Suite 100 Anywhere , TX 12345

""" parser = LexborHTMLParser(html) tree = parser.css('p[class="card_street"] span:not([class])') result = [element.text(strip=True) for element in tree] print(result)

这段代码的输出将是:

['Anywhere', ', TX', '12345']

这里使用了 strip=True 参数来去除文本前后的空格。

注意事项

  • 确保你的 CSS 选择器准确地匹配你想要选择的元素。
  • 使用 > 选择器来指定直接子元素,避免选择到不期望的元素。
  • :not([attribute]) 选择器非常有用,可以用来选择缺少特定属性的元素。
  • 考虑使用 Lexbor 后端以获得更好的性能。

总结

Selectolax 是一个强大的工具,可以帮助你轻松地从 HTML 文档中提取数据。通过使用 CSS 选择器和适当的技巧,你可以选择任何你需要的元素,即使它们缺少特定的属性。 结合 Lexbor 后端,可以进一步提升效率。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

361

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1503

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

625

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

698

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

650

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

174

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

83

2025.08.07

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

30

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 26.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号