Python中的w3lib
目前在做的项目中遇到一个需求:将爬取到的大量网页中的文本提取出来。由于网页太多,无法逐个分析使用xpath表达式进行提取。使用正则表达式可以实现,但太麻烦。这里介绍一款专业处理这方面问题的包w3lib
w3lib简介
w3lib是一个Python包,实现了一下与web相关的功能:
- 从html片段中移除注释或者标签
- 从html片段中提取base url
- 对html串中的字符实体进行转义
- 将原始HTTP头转换为字典格式
- 构造HTTP的认证报头
- 将html页面转换成unicode编码格式
- 从urls中提取参数
w3lib主要包括四个模块:
- html模块:处理与html标签相关的问题
- http模块:处理与http报文相关的问题
- url模块:处理与url地址相关的问题
- encoding模块:处理与编码格式相关的问题
实例片段
w3lib是scrapy的依赖包,所有当我们安装好scrapy后不需额外安装w3lib。这里主要用到了html模块,关键代码段如下:
from w3lib.html import remove_tags |
函数功能
这里主要使用了html模块下的三个函数
remove_tags()
默认情况下移除所有html标记,及标签的属性,只保留标签之间的文本,实例如下:
import w3lib.html |
replace_entities()
主要用于移除文本之间的字符实体,比如 
、>
等
replace_escape_chars()
主要用于移除文本之间的专业字符,包括\n
、\r
、`\t
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JrunDing!
评论