python使用xpath解析html元素

之前研究了基于BeautifulSoup4 解析html, 现在研究下xpath 的使用方法。

chrome浏览器自己可以安装插件: XPath Helper,再调试的时候可以使用该插件获取指定元素

0. 简单语法简介

该表达式描述了nodename选择该节点的所有子节点。/从根节点选择(采用子节点)。简单的理解是获取第一级子节点//从匹配选择的当前节点中选择文档中的节点,而不考虑它们的位置(后代节点)。简单的理解是获取所有子代节点。。选择当前节点。。。选择当前节点的父节点。@选择属性。

[En]

The expression describes that nodename selects all the children of this node. / Select from the root node (take child nodes). The simple understanding is to get the first-level child nodes / / to select the nodes in the document from the current node of the matching selection, regardless of their location (descendant nodes). The simple understanding is to get all descendant nodes. . Select the current node. .. Select the parent node of the current node. @ Select the property.

示例:

[En]

Example:

路径表达式bookstore的结果将选择bookstore元素的所有子节点。/书店

[En]

The result of the path expression bookstore selects all the child nodes of the bookstore element. / bookstore

选择根元素Bookstore。

[En]

Select the root element bookstore.

注意:如果路径以正斜杠(/)开头,则路径始终表示元素的绝对路径!

[En]

Note: if the path starts with a forward slash (/), the path always represents the absolute path to an element!

bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。 //book 选取所有 book 子元素,而不管它们在文档中的位置。 bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 //@lang 选取名为 lang 的所有属性。

谓词用于查找特定节点或包含指定值的节点。谓词内置于方括号中。例如:

[En]

Predicates are used to find a specific node or a node that contains a specified value. The predicate is embedded in square brackets. For example:

路径表达式结果 /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。 /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 /bookstore/book[position()

通配符描述匹配任何元素节点。@匹配任何属性节点。Node()匹配任何类型的节点。

[En]

The wildcard description * matches any element node. @ * matches any attribute node. Node () matches any type of node.

在下表中,我们列出了一些路径表达式以及这些表达式的结果:

[En]

In the following table, we list some path expressions and the results of these expressions:

路径表达式结果 /bookstore/ 选取 bookstore 元素的所有子元素。 // 选取文档中的所有元素。 //title[@*] 选取所有带有属性的 title 元素。

在路径表达式中使用“|”运算符可以选择多个路径。

[En]

Several paths can be selected by using the “|” operator in the path expression.

路径表达式//book/title|//book/Price的结果选择book元素的所有标题和价格元素。//标题|//价格选择文档中的所有标题和价格元素。/bookstore/book/title|//Price选择所有属于bookstore元素的book元素的标题元素,以及文档中的所有价格元素。

[En]

The result of the path expression / / book/title | / / book/price selects all title and price elements of the book element. / / title | / / price selects all title and price elements in the document. / bookstore/book/title | / / price selects all title elements that belong to the book element of the bookstore element, and all price elements in the document.

运算符描述实例返回值 | 计算两个节点集 //book | //cd 返回所有拥有 book 和 cd 元素的节点集 + 加法 6 + 4 10 – 减法 6 – 4 2 * 乘法 6 * 4 24 div 除法 8 div 4 2 = 等于 price=9.80

如果价格为9.80,则返回TRUE。

[En]

If price is 9.80, true is returned.

如果价格为9.90,则返回FALSE。

[En]

If price is 9. 90, false is returned.

!= 不等于 price!=9.80

如果价格为9.90,则返回TRUE。

[En]

If price is 9. 90, true is returned.

如果价格为9.80,则返回FALSE。

[En]

If price is 9.80, false is returned.

< 小于 price

Original: https://www.cnblogs.com/qlqwjy/p/16518736.html
Author: QiaoZhi
Title: python使用xpath解析html元素

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6342/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部