XPath
XPath,全程XML Path Language,是一门在XML文档中查找信息的语言,也适用于HTML文档的搜索
XPath用法 lxml库用法
概览
常用规则
| 表达式 | 描述 |
|---|---|
| nodename | 选取此节点的所有子节点 |
| / | 从当前节点选取直接子节点 |
| // | 从当前节点选取子孙节点 |
| . | 选取当前节点 |
| .. | 选取当前节点的父节点 |
| @ | 选取属性 |
运算符以及介绍
| 运算符 | 描述 | 实例 | 返回值 | ||
|---|---|---|---|---|---|
| or | 或 | ||||
| and | 与 | ||||
| mod | 取余 | ||||
| \ | 计算两个节点集 | //book \ | //cd | 返回所有拥有book和cd元素的节点集 | |
| + | 加法 | ||||
| - | 减法 | ||||
| * | 乘法 | ||||
| div | 除法 | ||||
| = | 等于 | ||||
| != | 不等于 | ||||
| < | 小于 | ||||
| > | 大于 | ||||
| >= | 大于等于 | ||||
| <= | 小于等 |
Beautiful soup
Beautiful Soup就是Python的一个HTML或XML的解析库
解析器
Beautiful soup在解析时实际上依赖解析库,支持的解析库如下
| 解析器 | 使用的方法 | 优势 | 劣势 |
|---|---|---|---|
| Python标准库 | BeautifulSoup(markup,”html.parser”) | Python内置标准库,执行速度适中,文档容错能力强 | Python2.7.3以及3.2.2之前的版本文档容错能力差 |
| lxml html解析器 | BeautifulSoup(markup,”lxml”) | 速度快,文档容错能力强 | 需要c语言库 |
| lxml xml解析器 | BeautifulSoup(markup,”xml”) | 速度快,唯一支持xml的解析器 | 需要c语言库 |
| html5lib | BeautifulSoup(markup,”html5lib”) | 最好的容错性、以浏览器的方式解析文档、生成html5格式的文档 | 速度慢、不依赖扩展 |
puquery
获取元素方式和jquery类似
参考资料
崔庆才大佬的《python3网络爬虫开发实战》