Python selectolax 模块是什么

在 Python 爬虫中 selectolax 模块用于解析网页源码,而且效率非常快。

开源地址为:selectolax

模块安装使用下述命令

pip install selectolax

怎么用

上手案例

from selectolax.parser import HTMLParserhtml = """
<h1 id="title" data-updated="20201101">梦想橡皮擦</h1>
<div class="post">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
<div class="post">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
"""
tree = HTMLParser(html)ret = tree.css_first('h1#title').text()
print(ret)

导入模块 parser 中的 HTMLParser 类,就可以对网页源码进行格式化操作,然后执行 css_first() 方法,提取网页内容。
其语法格式类似于 cssselect 模块,即 CSS 选择器。

其中 .text() 方法为获取文本内容,.attributes 可以获取标签属性。

如果想要获取网页中多个元素,可以使用下述代码。

rets = [node.text() for node in tree.css('.post')]
print(rets)

更多的方法和属性

一些简单的属性如下所示。

from selectolax.parser import HTMLParser
import requestshtml = requests.get('https://www.example.com/').textparser = HTMLParser(html)print(parser.head) # 头标签信息
print(parser.root) # 根标签信息

还可以移除指定标签,例如下述代码,用到的方法是 strip_tags()

from selectolax.parser import HTMLParser
tree = HTMLParser('<html><head></head><body><script></script><div>Hello world!</div></body></html>')
tags = ['head', 'style', 'script', 'xmp', 'iframe', 'noembed', 'noframes']
tree.strip_tags(tags)
print(tree.html)
# '<html><body><div>Hello world!</div></body></html>'

标签对象 Node

在上文中使用 css_first() 方法得到的是 Node 对象,其常用的属性有 attributes,获取标签属性,child 获取标签子节点。

css() 在当前标签继续查找,html 属性用于获取当前标签的 HTML 代码,其余内容,阅读文档即可理解,不在赘述。

扩展场景

Selectolax 支持两个解析引擎:Modern 和 Lexbor。
默认情况下使用 Modern,二者大多数功能相同,差异如下所示。

Lexbor 后端处于测试阶段,缺少一些功能。

from selectolax.lexbor import LexborHTMLParserhtml = """
<title>梦想橡皮擦</title>
<div id="updated">爬虫爱好者</div>
"""parser = LexborHTMLParser(html)
ret = parser.root.css_first("#updated").text()
print(ret)

参考资料:官方手册

【Python技能树共建】python selectolax 模块相关推荐

  1. 你我共建python技能树,python技能树测评

    目录 前言 一.布局建议 1.整体功能建议 2.块功能建议 二.内容建议 1.知识点的阐述 2.知识点的全面性 三.祝愿 前言 最近放假在答题过程中,发现CSDN更新了python技能树,比较惊喜,也 ...

  2. 【Python技能树共建】字符串方法

    Python 字符串方法是什么 Python 字符串是 Python 内置的一种数据类型,本篇博客要学习的内容就是字符串对象的方法. 先来学习第一个知识点,Python 字符串,字符串是一个编程名词, ...

  3. 【Python技能树共建】requests-html库初识

    requests-html 模块是什么 requests-html 模块安装使用 pip install requests-html 即可,官方手册查询地址:requests-html.kenneth ...

  4. 【Python技能树共建】Python爬虫模拟登录

    Python 爬虫模拟登录 Python 爬虫模拟登录是使用脚本实现自动登录,部分站点需要逆向加密逻辑,更多的站点会采用验证码进行鉴权验证. 本文为大家带来最简单的登录,其核心用到的是 request ...

  5. 【Python技能树共建】Beautiful Soup

    Beautiful Soup模块是什么 初学 Python 爬虫,十之八九你采集的目标是网页,因此快速定位到网页内容,就成为你面临的第一道障碍, 本篇博客就为你详细说明最易上手的网页元素定位术,学完就 ...

  6. 【Python技能树共建】selenium入手篇

    Python selenium 入手篇 selenium 项目最早是为测试浏览器.网页开发的,并且广泛应用于爬虫,需要注意 selenium 不是单个软件,它其实由一系列的工具组成. selenium ...

  7. 【python技能树】python模块管理

  8. Python技能树丨Python简介

  9. 学Python,站在这棵树上就对了 | Python技能树测评

    学Python,站在这棵树上就对了 | Python技能树测评 前言 Python 技能树介绍 Python 技能树使用 知识学习 练习实践 学习进度 交流讨论 总结 前言 我们常说,在学习中要学会站 ...

最新文章

  1. 移动安全问题不可掉以轻心,Check Point剖析近日移动安全问题
  2. Linux之wget下载
  3. 32位crc校验码程序_CRC码计算及校验原理的最通俗诠释
  4. oracle 打印SQL
  5. tomcat占用cpu比较多
  6. ELK+Kafka 企业日志收集平台(二)这是原版
  7. shuffle操作图解以及job-stage-task-partition区别
  8. jquery导入数据_Web技术——简单的数据库编程
  9. HEC-RAS如何修改SA/2D Connection的名称
  10. Atitit 定时器timer 总结 目录 1.1. Js定时器 window.setInterval 1 2. Java定时器 timer 1 1.1.Js定时器 window.setInter
  11. 【脑洞探究】等公交该站在哪儿比较合适?——关于减少吸入空气污染物(pm2.5 or 雾霾等)而选择合适等候公交车位置的探究
  12. try固定搭配_【昂立推荐】初中英语动词固定搭配大全,值得收藏!
  13. JQuery图片跟随鼠标移动
  14. 机械键盘恢复出厂fn_机械键盘使用说明
  15. 虚拟机实现远程桌面连接
  16. Dao接口返回数组_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?...
  17. OneZero第二周第三次站立会议(2016.3.30)
  18. web 服务器安全维护,Web服务器安全攻击及防护机制详解
  19. 怎么批量转换图片格式?这些方法帮助你一键转换
  20. shortcut详解

热门文章

  1. 软件设计师考试准备篇
  2. 发票处理误差的计算方式
  3. Eclipse环境配置常见问题及解决方案
  4. AIGC:AI视频是下一个AI绘画吗?
  5. 深度学习模型压缩算法综述(二):模型剪枝算法
  6. 装修前必看系列|冰箱也有大学问,万元级冰箱选购攻略
  7. 波浪形状html,使用CSS3线性渐变(linear-gradient)实现文本波浪线效果_html/css_WEB-ITnose...
  8. 数据库Sql server 表分区
  9. 基于Python Flask框架的共享自习室预约系统的设计与实现-计算机毕业设计源码+LW文档
  10. The 15th Chinese Northeast Collegiate Programming Contest 题解(CCPC压力测试?