xpath使用

这篇博客介绍了XPath的基础语法,包括创建HTML文档、选取不同类型的元素和属性。详细讲解了如何获取根路径、选取特定标签、获取文本内容以及利用XPath函数进行更复杂的筛选,如选取含有特定属性的节点。此外,还探讨了XPath的常用函数,如string()、contains()等,以及各种轴(child、ancestor等)的概念,帮助读者深入理解XPath在网页解析和爬虫中的应用。
摘要由CSDN通过智能技术生成

帮助文档
https://www.w3.org/TR/xpath/

基础语法

表达式 描述
/ 选中文档的根
.(点) 选中当前节点
…(点点) 选中当前节点的父节点
ELEMENT 选中子节点中所有ELEMENT元素节点
//ELEMENT 选中后代节点中所有ELEMENT元素节点
* 选中所有元素子节点
text() 选中所有文本子节点
@ATTR 选中名为ATTR的属性节点
@* 选中所有属性节点

创建html文档

from scrapy.selector import Selector
from scrapy.http import HtmlResponse

body='''
<html>
	<head>
		<base href='http://example.com/'>
		<title>Example website</site>
	</head>
	<body>
		<div id='images'>
			<a href='image1.html'>Name:Image 1 <br/><img src='image1.jpg' /></a>
			<a href='image2.html'>Name:Image 2 <br/><img src='image2.jpg' /></a>
			<a href='image3.html'>Name:Image 3 <br/><img src='image3.jpg' /></a>
			<a href='image4.html'>Name:Image 4 <br/><img src='image4.jpg' /></a>
			<a href='image5.html'>Name:Image 5 <br/><img src='image5.jpg' /></a>
		</div>
	</body>
</html>
'''

response = HtmlResponse(url='http://www.example.com',body=body,encoding='utf8')

获取根路径

print(response.xpath('/html'))
[<Selector xpath='/html' data='<html>\n\t<head>\n\t\t<base href="http://e...'>]

print(response.xpath('/html/head'))
[<Selector xpath='/html/head' data='<head>\n\t\t<base href="http://example.c...'>]


获取div下的所有a标签

print(response.xpath('/html/body/div/a'))
[<Selector xpath='/html/body/div/a' data='<a href="image1.html">Name:Image 1 <b...'>, 
<Selector xpath='/html/body/div/a' data='<a href="image2.html">Name:Image 2 <b...'>,
<Selector xpath='/html/body/div/a' data='<a href="image3.html">Name:Image 3 <b...'>, 
<Selector xpath
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值