XPath基础教程,利用XPath进行采集信息

XPath是一种使用路径表达式在XML文档(或我们的HTML文档)中选择节点或节点集的技术。虽然XPath本身不是编程语言,它也允许您编写可以直接访问特定HTML元素的表达式,而无需遍历整个HTML结构。

为什么要学习XPath

从网页中提取数据时,必须了解如何使用基本XPath表达式。
比CSS选择器更强大
它允许您以任何方向浏览DOM
可以匹配HTML元素内的文本

文档对象模型(Document Object Model)

我假设您已经了解HTML,网页是一个包含标签内文本的文档,通过描述诸如标题,段落,列表,链接等元素,为文档增加含义。

让我们看一个基本的HTML页面,以了解什么是文档对象模型。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>What is the DOM ?</title>
</head>
<body>
    <h1>DOM 101</h1>
    <p>Websraping is awsome !</p>
    <p>Here is my <a href="https://www.scrapingbee.com/blog">blog</a></p>
</body>
</html>
rmqhgyrbwdbczfcg_hu1e1d337a3bce3f5e7a7bdc84d1b0b64f_43119_800x0_resize_box_2.png

该HTML代码基本上是封装在其他HTML内容内的HTML内容。HTML层次结构可以视为树。我们已经可以通过HTML代码中的缩进看到该层次结构。

当您的Web浏览器解析此代码时,它将创建一棵树状结构,该树是HTML文档的对象表示。它称为文档对象模型。

要记住的重要一点是,当您右键单击+ inspect时,在浏览器中看到的DOM可能与发送的实际HTML确实不同。也许执行了一些Javascript代码并动态更改了DOM!例如,当您滚动Twitter帐户时,浏览器会发送一个请求以获取新的tweet,并且一些Javascript代码将这些新的tweet动态添加到DOM。

xPath语法

• 在Xpath术语中,与HTML一样,存在不同类型的节点:根节点,元素节点,属性节点以及所谓的原子值,这是HTML文档中文本节点的同义词。

• 每个元素节点都有一个父节点。在此示例中,section元素是p,details和button的父元素。

• 元素节点可以具有任意数量的子节点。在我们的示例中,li元素是ul元素的所有子元素。

• 兄弟姐妹是具有相同父代的节点。p,详细信息和按钮是同级。

• 祖先节点的父级和父级的父级...

• 后代节点的子代和子代的子代…

在HTML文档中有多种类型的表达式来选择节点,以下是最重要的表达式:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容