获取字段标签属性(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)
**
侵权立删
**