【Python技能树共建】python selectolax 模块
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 模块相关推荐
- 你我共建python技能树,python技能树测评
目录 前言 一.布局建议 1.整体功能建议 2.块功能建议 二.内容建议 1.知识点的阐述 2.知识点的全面性 三.祝愿 前言 最近放假在答题过程中,发现CSDN更新了python技能树,比较惊喜,也 ...
- 【Python技能树共建】字符串方法
Python 字符串方法是什么 Python 字符串是 Python 内置的一种数据类型,本篇博客要学习的内容就是字符串对象的方法. 先来学习第一个知识点,Python 字符串,字符串是一个编程名词, ...
- 【Python技能树共建】requests-html库初识
requests-html 模块是什么 requests-html 模块安装使用 pip install requests-html 即可,官方手册查询地址:requests-html.kenneth ...
- 【Python技能树共建】Python爬虫模拟登录
Python 爬虫模拟登录 Python 爬虫模拟登录是使用脚本实现自动登录,部分站点需要逆向加密逻辑,更多的站点会采用验证码进行鉴权验证. 本文为大家带来最简单的登录,其核心用到的是 request ...
- 【Python技能树共建】Beautiful Soup
Beautiful Soup模块是什么 初学 Python 爬虫,十之八九你采集的目标是网页,因此快速定位到网页内容,就成为你面临的第一道障碍, 本篇博客就为你详细说明最易上手的网页元素定位术,学完就 ...
- 【Python技能树共建】selenium入手篇
Python selenium 入手篇 selenium 项目最早是为测试浏览器.网页开发的,并且广泛应用于爬虫,需要注意 selenium 不是单个软件,它其实由一系列的工具组成. selenium ...
- 【python技能树】python模块管理
- Python技能树丨Python简介
- 学Python,站在这棵树上就对了 | Python技能树测评
学Python,站在这棵树上就对了 | Python技能树测评 前言 Python 技能树介绍 Python 技能树使用 知识学习 练习实践 学习进度 交流讨论 总结 前言 我们常说,在学习中要学会站 ...
最新文章
- 移动安全问题不可掉以轻心,Check Point剖析近日移动安全问题
- Linux之wget下载
- 32位crc校验码程序_CRC码计算及校验原理的最通俗诠释
- oracle 打印SQL
- tomcat占用cpu比较多
- ELK+Kafka 企业日志收集平台(二)这是原版
- shuffle操作图解以及job-stage-task-partition区别
- jquery导入数据_Web技术——简单的数据库编程
- HEC-RAS如何修改SA/2D Connection的名称
- Atitit 定时器timer 总结 目录 1.1. Js定时器 window.setInterval	1 2. Java定时器 timer	1 1.1.Js定时器 window.setInter
- 【脑洞探究】等公交该站在哪儿比较合适?——关于减少吸入空气污染物(pm2.5 or 雾霾等)而选择合适等候公交车位置的探究
- try固定搭配_【昂立推荐】初中英语动词固定搭配大全,值得收藏!
- JQuery图片跟随鼠标移动
- 机械键盘恢复出厂fn_机械键盘使用说明
- 虚拟机实现远程桌面连接
- Dao接口返回数组_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?...
- OneZero第二周第三次站立会议(2016.3.30)
- web 服务器安全维护,Web服务器安全攻击及防护机制详解
- 怎么批量转换图片格式?这些方法帮助你一键转换
- shortcut详解
热门文章
- 软件设计师考试准备篇
- 发票处理误差的计算方式
- Eclipse环境配置常见问题及解决方案
- AIGC:AI视频是下一个AI绘画吗?
- 深度学习模型压缩算法综述(二):模型剪枝算法
- 装修前必看系列|冰箱也有大学问,万元级冰箱选购攻略
- 波浪形状html,使用CSS3线性渐变(linear-gradient)实现文本波浪线效果_html/css_WEB-ITnose...
- 数据库Sql server 表分区
- 基于Python Flask框架的共享自习室预约系统的设计与实现-计算机毕业设计源码+LW文档
- The 15th Chinese Northeast Collegiate Programming Contest 题解(CCPC压力测试?