xpath定位简单应用

获取字段标签属性(href)

li=tree.xpath("//div[@class='article']//li//a/@href")[0]

在这里插入图片描述

可以看到href在div[@class='article']里面,直接//定位,
//div[@class='article']

第二步接着//定位到li(因为li在第一步定位的第n层,不是在下一层级用/定位不到)
//div[@class='article']//li)

第三步//接着定位a类似第二步想法,最后直接/@href定位属性url(相当于在a的下一层级)
//div[@class='article']//li//a/@href")

(这里其实第二步可以省略直接li=tree.xpath("//div[@class='article']//a/@href")[0]

获取电影名称(肖申克的救赎)

直接定位到电影名称点击右键选择xpath复制(简单易解)如下:
在这里插入图片描述

复制的xpath为
//*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]
然后获取名称直接在span[1]/text()如下
name=tree.xpath('//*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]/text()')
或者直接如下拿到电影名
name=tree.xpath('//div[@class="hd"]//span[1][@class="title"]/text()')[0]

使用xpath定位输出结果为<Element span at 0x15444e01e88>时

可以使用下面方法编码解码,text为输出的参数
text=tree.xpath('//div[1][@class="hd"]//span[1][@class="title"]')[0]
输出为   <Element span at 0x23d72382d88>
content=etree.tostring(text,encoding='utf-8').decode('utf-8') 
输出<span class="title">肖申克的救赎</span>

仅供参考,

import requests
from lxml import etree
url='https://movie.douban.com/top250'
header={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.44"
}
r=requests.get(url,headers=header)
tree=etree.HTML(r.text)
li=tree.xpath("//div[@class='article']//li//a/@href")[0]
print(li)
name=tree.xpath('//div[@class="hd"]//span[1][@class="title"]/text()')[0]
print(name)
text=tree.xpath('//div[1][@class="hd"]//span[1][@class="title"]')[0]
print(text)
a=etree.tostring(text,encoding='utf-8').decode('utf-8')
print(a)

**

侵权立删

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值