第二篇爬虫之基础XPath模块和lxml类库

作者: 博行天下 | 来源:发表于2017-11-19 18:14 被阅读188次

简介:XPath将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素,首先了解下XML文档,熟悉XML结构,同时还需要了解HTML DOM 树

1. XML的节点关系
  • 父(Parent)

    • 每个元素以及属性都有一个父
  • 子(Children)

    • 元素节点可有零个、一个或多个子
  • 同胞(Sibling)

    • 拥有相同的父的节点
  • 先辈(Ancestor)

    • 某节点的父、父的父,等等
  • 后代(Descendant)

    • 某个节点的子,子的子,等等
2. XPath的选取节点
  • XPath 使用路表达式来选取 XML 文档中的节点或者节点集
表达式 描述
/ 从根节点选取
2 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选取当前节点的父节点
@class 选取名为 class 的所有属性
* 匹配任何元素节点
@* 匹配任何属性节点
node 匹配任何类型的节点
//book/title //book/price 选取 book 元素的所有 title 和 price 元素
  • XPath的运算符


    xpath.png
3. lxml库的使用
  • lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据,lxml python 官方文档,pip 安装:pip install lxml即可
1. #利用etree.HTML,将字符串解析为HTML文档
html = etree.HTML(text) 

# 按字符串序列化XML文档
result = etree.tostring(html) 

print(result)
2. from lxml import etree

# 读取外部文件 hello.html
html = etree.parse('./hello.html')
result = html.xpath('//li')  # 获取所有的 <li> 标签
result = etree.tostring(html, pretty_print=True)

print(result)

相关文章

网友评论

    本文标题:第二篇爬虫之基础XPath模块和lxml类库

    本文链接:https://www.haomeiwen.com/subject/xvaxvxtx.html