路径表达式
谓语
用来查找某个特定的节点或者包含某个指定的值的节点
谓语被嵌在方括号中
选择未知节点
选取若干路径
使用“|”运算符
python中lxml使用
python">from lxml import etree
import requests
# 参数往往是一个html字符串
url = "https://www.baidu.com/"
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
}
res = requests.get(url=url, headers=headers)
# print(res.text)
# 基于xpath进行数据解析
element = etree.HTML(res.text)
# print(element)
# 定位元素
# element.xpath('/html/body/div[1]/div[1]/div[5]/div/div/div[3]/ul/li[1]/a/span[2]')
# ele_li = element.xpath('/html/body/div[1]/div[1]/div[5]/div/div/div[3]/ul/li')
# print(ele_li)
# for i in ele_li:
# print(i.xpath('./a/span[2]/text()')[0])input_ele = element.xpath('//input[@class="s_ipt" and @name="wd"]')
print(input_ele)
# 拿a标签文本
a_ele = element.xpath('//div[@id="s-top-left"]/a/text()')
print(a_ele)
# 拿属性值
a_href = element.xpath('//div[@id="s-top-left"]/a/@href')
print(a_href)
# 模糊查询 拿到链接为https的
# 使用contains 模糊查询
a_href_https = element.xpath('//div[@id="s-top-left"]/a[contains(@href,"https")]/@href')
print(a_href_https)
element.xpath 拿到的是一个element对象,在xpath规则中末尾加text()即可拿到文本内容,并且内容会放在一个列表中
如果想取标签的属性则使用@属性名,例如@href