网络爬虫是一种自动化程序,用于在互联网上浏览和抓取信息。它可以自动地从网页中提取数据,并且可以按照预定的规则进行操作,如抓取特定网站的所有页面或抓取特定内容等。其中在 HTML 文档中,每个元素都有自己的标签和属性。XPath 可以通过标签名和属性名来定位和提取元素
基本语法:
(1)XPath表达式通常以斜杠 / 开始,表示从根节点开始的路径。
(2)双斜杠 // 表示不考虑元素的层级位置,可以在整个文档中搜索匹配的元素。
(3)元素名称用于定位元素,例如 /bookstore/book 表示选择根节点下的所有 <book> 元素。
节点类型:
(1)在XPath中,节点可以是元素、属性、文本、注释等。
(2)常见的节点类型包括:element、attribute、text、comment、processing-instruction等。
谓词:
(1)谓词是XPath表达式中的条件,用于过滤或选择元素。
(2)可以使用方括号 [] 来添加谓词,例如 /bookstore/book[1] 表示选择第一个 <book> 元素。
通配符:
(1)* 表示匹配任何元素节点,例如 /bookstore/* 选择根节点下的所有子元素。
(2) @ 表示匹配任何属性节点,例如 /bookstore/book/@* 选择所有 <book> 元素的所有属性。
父节点和子节点:
(1) 使用 .. 表达式可以选择当前节点的父节点,例如 /bookstore/book/title/.. 选择 <title> 元素的父元素 <book>。
(2)使用 / 表示子节点关系,例如 /bookstore/book/title 选择 <book> 元素下的 <title> 子元素。
在开始数据采集之前我们应该首先加载库:for lxml import etree(在Temrinal中执行“pip install lxml”)
提取数据
因为xpath提取到的整个标签展现形式是这样的[<Element h1 at 0x1eb1102b5c0>]
,所以先讲如何提取内容,之后讲如何提取标签时,才好根据输出内容来区分提出来的是什么东西。
提取内容分为两个部分
- 提取标签内容,用
/text()
- 提取标签属性值,用
/@属性名
见如下代码:
今日关于xpath的基础知识点就到这里!谢谢