Python爬虫网页解析神器Xpath快速入门教学!!!


1、Xpath介绍

     XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。


2、Xpath路径表达式

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

3、结合实例讲解

这里我就是使用百度的界面为大家进行讲解

在这里插入图片描述

:我想获取图中的百度热榜,打开控制台,我们可直接根据div标签的class值进行定位(这是我们平时使用xpath语法比较多的地方)
在这里插入图片描述

from lxml import etree
import requests


headers = {
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
}
url = "https://www.baidu.com/"
response = requests.get(url=url,headers=headers)
#使用etree进行解析
data = etree.HTML(response.text)

#可参考上表格进行对比,//div可理解为任意路径下的一个div标签,@class表示选取class属性,text()表示获取text文本
name = data.xpath("//div[@class='title-text c-font-medium c-color-t']/text()")
print(name[0])

在这里插入图片描述

:我想获取热榜有哪些信息,参考下图可见其全部在ul标签下,每一个信息对于一个li标签

在这里插入图片描述

data = etree.HTML(response.text)
#//ul表示任意路径下的ul标签,
#表示获取ul下的所有li标签
ul = data.xpath("//ul[@class='s-hotsearch-content']/li")
#当然,大家在爬取过程中可能会遇到没有class属性的标签,这时可使用id定位,又或者定位其父标签,再往下找
#ul = data.xpath("//ul[@id='hotsearch-content-wrapper']/li")

#遍历
for li in ul:
	# .//span表示当前节点下的任意span标签,我们再根据class值定位,使用text()获取文本信息
    name = li.xpath(".//span[@class='title-content-title']/text()")
    print(name[0])

在这里插入图片描述

:定位百度热榜找它的父节点也就是a标签的href属性
在这里插入图片描述

data = etree.HTML(response.text)

#..表示其父节点
url = data.xpath("//div[@class='title-text c-font-medium c-color-t']/../@href")
print(url[0])

在这里插入图片描述

Xpath语法其实不难的,大家需要多练习,进行实战,这样熟练掌握会很快的,可以下方的爬虫教程索引,里面有很多爬虫使用xpath写的,可以阅读看看。



优快云独家福利降临!!!


最近优快云有个独家出品的活动,也就是下面的《Python的全栈知识图谱》,路线规划的非常详细,尺寸 是870mm x 560mm 小伙伴们可以按照上面的流程进行系统的学习,不要像我当初一样没人带自己随便找本书乱学,系统的有规律的学习,它的基础才是最扎实的,在我们这行,《基础不牢,地动山摇》尤其明显。

最后,如果有兴趣的小伙伴们可以酌情购买,为未来铺好道路!!!

在这里插入图片描述


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

更多博主开源爬虫教程目录索引(宝藏教程,你值得拥有!)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值