ad

学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_2.4 XPath 与lxml

网友投稿 112 2023-11-13

【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第2章,第4节,吕云翔、张扬和韩延刚等编著。

2.4 XPath 与lxml

学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_2.4 XPath 与lxml

2.4.1 XPath

XPath 也就是XML Path Language (译为 “XML 路径语言”),是一种用来在XML 文档

中搜寻信息的语言。这里先来介绍一下 XML 和 HTML 的关系。所谓的 HTML(HyperText Markup Language),也就是“超文本标记语言”,是 WWW 的描述语言,其设计目标是“创 建网页和其他可在网页浏览器中访问的信息”,而 XML 则是 Extentsible Markup Language (译为“可扩展标记语言”),其前身是SGML (标准通用标记语言)。简单地说,HTML 是用 来显示数据的语言(同时也是 html 文件的作用), XML 是用来描述数据、传输数据的语言 (对应 xml 文件,这个意义上 XML 十分类似于 JSON) 。 也有人说, XML 是对 HTML 的补 充 。XPath 可用来在 XML 文档中对元素和属性进行遍历,实现搜索和查询的目的, XML 与 HTML 紧密联系,开发者也可以使用 XPath 来对 HTML 文件进行查询。

XPath 的语法规则并不复杂,大家需要先了解 XML 中的一些重要概念,包括元素、属 性、文本、命名空间、处理指令、注释及文档。这些都是 XML 中的“节点”, XML 文档本 身就是被作为节点树来对待的,每个节点都有一个parent (父节点),比如:

TransformersMichael Bay

上 面 的 例 子 里 , 的 父 节 点 。的子节点。 互为兄弟节点。TransformersMichael Bay

Kung Fu HustleStephen Chow

在上面的 XML 语句中, 的先祖节点 (ancestor), 同时, 的后辈 (descendant) 节点。

掌握这些基本内容就可以开始试着使用 XPath 了。不过在实际编程中,开发者一般不必 自己编写 XPath, 使 用 Chrome 等浏览器自带的开发者工具就能获得某个网页元素的 XPath 路径,然后通过分析感兴趣的元素的XPath 路径,就能编写对应的抓取语句。

2.4.2 Ixml 与 XPath 的使用

在 Python 中 用 于XML 处理的工具不少,比如 Python2 中 的 ElementTree API 等,不过 目前开发者们一般使用1xml 这个库来处理 XPath 。lxml 的构建基于两个 C 语言库:libxml2

和 libxslt, 因此,在性能方面1xml 的表现足以让人满意。另外, lxml 支 持 XPath 1.0、 XSLT 1.0、定制元素类,以及Python 风格的数据绑定接口,因此受到很多人的欢迎。

当然,如果机器上没有安装lxml, 首先也要用 “pip install lxml” 命令来进行安装,安装 时可能会出现 一 些问题(这是由 lxml 本身的特性造成的)。另外, lxml 还可以使用 easy install 等方式安装,更多详情可参照lxml 官方的说明,网址为: http://xml.de/installation.html。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 可视化数据分析》_学会挖掘大数据的价值_1.2 Python 快速准备
下一篇:学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_2.3.2 BeautifulSoup 的基本使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~