Scrapy 爬虫框架-xpath语法介绍

Xpath简介
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航,其实HTML就是一种特殊的XML,因此大家在学习XPath时需要了解基本的HTML和XML

XPath 使用路径表达式在 XML 文档中进行导航
XPath 包含一个标准函数库
XPath 是 XSLT 中的主要元素
XPath是一个 W3C 标准

Xpath语法

表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
选取当前节点的父节点
@ 选取属性

Xpath实践

data = """
<div>
    <ul>
         <li class="item-0"><a>first item</a></li>
         <li class="item-1"><a href="link2.html">second item</a></li>
         <li class="item-inactive"><a href="link3.html">third item</a></li>
         <li class="item-1"><a href="link4.html">fourth item</a></li>
         <li class="item-0"><a href="link5.html" id='kw'>fifth item</a>
     </ul>
</div>
"""

from lxml import etree
# 输出一个标准的HTML格式
html = etree.HTML(data)
print(etree.tostring(html))
# xpath语法: 标签,标签的值,标签的属性
# 从根节点选取
# li_list = html.xpath("/html/body/div/ul/li")
li_list = html.xpath("//li")
print("从匹配选择的当前节点,而不考虑它们的位置")
for li in li_list:
    print(li)
print("获取标签的值采用text()函数")
text_list = html.xpath("//li/a/text()")
for text in text_list:
    print(text)
print("获取标签的值(根据属性筛选)")
text_list = html.xpath("//li/a[@href='link5.html']/text()")
for text in text_list:
    print(text)
print("获取标签的属性,@代表获取属性")
href_list = html.xpath("//li/a/@href")
for href in href_list:
    print(href)

————————————————
版权声明:本文为CSDN博主「lsqzedu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lsqzedu/article/details/99697735

发表评论

邮箱地址不会被公开。 必填项已用*标注