Xpath解析数据

本文介绍了如何使用Python的lxml库和XPath进行网页解析,以获取起点月票榜的小说名称和作者。通过实例展示了从起点中文网抓取月票榜数据的完整代码,包括设置User-Agent、发送HTTP请求、解析HTML内容等步骤。测试结果显示成功提取了小说名和作者信息。
摘要由CSDN通过智能技术生成

目录

 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

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


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

获取作者名称


 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)

测试结果

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry_ww

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值