xpath笔记

''''#xpath是在xml文档中搜索内容的一门语言
#xml是html的母集
#安装lxml模块
pip install lxml -i
xpath解析
'''
from lxml import etree
xml='''...'''
#tree=etree.parse()#加载一个文件
tree=etree.XML(xml)
result=tree.xpath('/book')#/表示层级关系,第一个是根节点
result=tree.xpath('/book/name/text()')#text()获取文本
result=tree.xpath('/book/name//nick/text()')#//表示name下所有nick
result=tree.xpath('/book/name/*/nick/text()')#*表示任意节点,通配符
result=tree.xpath('/book/name/nick[1]/text()')#nick[1]表示第一个nick,xpath顺序是从1开始数的
result=tree.xpath('/book/name/nick[@href='大炮']/text()') #nick中的href属性值必须为大炮,获取a标签中的值[@xxx=xxx]
ollist=tree.xpath('html/body/ol/li')
for li in ollist:
# 从每一个Li中提取到文字信息
result = li.xpath("./a/text()")#在Li中继续去寻找,.表示相对路径
result2=li.xpath('./a/@href')#拿到属性href的值
#可以在浏览器上复制源代码为xpath形式,然后自己微调

#拿到页面源代码
#提取和解析数据:爬取八戒网吃了大亏,现在第一行全是广告,气的我直接只看视频不实操了
import requests
from lxml import etree
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'}
url='https://www.zbj.com/search/f/?kw=saas'

reps=requests.get(url=url,headers=headers)

html=etree.HTML(reps.text)
divs=html.xpath('/html/body/div[6]/div/div/div[2]/div[5]/div')
for div in divs:
price=div.xpath("./div[1]/div/div/a[2]/div[2]/div[1]/span[1]/text()")
title=div.xpath("./div[1]/div/div/a[2]/div[2]/div[2]/p/text()")
company=div.xpath("./div[1]/div/div/a[1]/div[1]/p/text()")
print(title)
print(company)
posted @ 2022-03-16 16:33  wzc6  阅读(50)  评论(0)    收藏  举报