Xpath解析数据

目录

 XML、Xpath理论知识

安装Xpath

获取起点月票榜的小说名称

获取作者名称

 pycharm实战

代码部分

测试结果


 XML、Xpath理论知识

xpath解析:最常用且最便捷高效的一种解析方式,同时也是通用性最强的一种方式。

xpath解析原理:

1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。

2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。

实例化一个etree对象:from lxml import etree

1.将本地的html文档中的源码数据加载到etree对象中:

etree.parse(filePath)

2.可以将从互联网上获取的源码数据加载到该对象中:

etree.HTML('page_text')

xpath('xpath表达式'):

/:表示的是从根节点开始定位。表示的是一个层级

//:表示的是多个层级;可以表示从任意位置开始定位。

属性定位://div[@class="song"] 语法:tag[@attrName="attrValue"]

索引定位://div[@class="song"]/p[3] 索引是从1开始的

取文本:

/text() 获取的是标签中的直系文本内容

//text() 获取标签中非直系文本的内容(所有的文本内容)

取属性:

/attrName ==>img/src

Xpath解析数据_第1张图片Xpath解析数据_第2张图片

Xpath解析数据_第3张图片

Xpath解析数据_第4张图片


安装Xpath

链接:百度网盘 请输入提取码
提取码:qtik
下载好添加到浏览器的扩展程序。如果拖曳过去显示无效,就把cxr后缀修改为zip的


获取起点月票榜的小说名称

Xpath解析数据_第5张图片

获取作者名称

Xpath解析数据_第6张图片


 pycharm实战

代码部分

import requests
from lxml import etree
url='https://www.qidian.com/rank/yuepiao/'
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}

#发送请求
resp=requests.get(url,headers)
e=etree.HTML(resp.text)  #类型转换 将str类型转换成 class 'lxml.etree._Element'
#print(type(e))
names=e.xpath('//div[@class="book-mid-info"]/h2/a/text()')
authors=e.xpath('//p[@class="author"]/a[1]/text()')
#print(names)
#print(authors)
for name,author in zip(names,authors):
    print(name,":",author)

测试结果

Xpath解析数据_第7张图片

你可能感兴趣的:(爬虫,python,python,开发语言)