python使用XPath解析数据爬取起点小说网数据


Posted in Python onApril 22, 2021

1. xpath 的介绍

xpath是一门在XML文档中查找信息的语言

优点:

  • 可以在xml中找信息
  • 支持HTML的查找
  • 可以通过元素和属性进行导航

但是Xpath需要依赖xml的库,所以我们需要去安装lxml的库。

安装lxml库

我们先要安装lxml的库,直接在pycharm里安装即可:

python使用XPath解析数据爬取起点小说网数据

XML的树形结构:

python使用XPath解析数据爬取起点小说网数据

元素-元素-属性-文本

使用XPath选取节点:

  • nodename: 选取此节点的所有节点
  • /从根节点选择
  • // 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
  • . 选择当前节点
  • .. 选择当前节点的父节点(此处是两个点,浏览器默认显示3个..)
  • /text() 获取当前路径下的文本内容
  • /@xxx 提取当前路径下标签的属性值

选取节点的表达式举例:

python使用XPath解析数据爬取起点小说网数据

2. 爬取起点小说网

在浏览器中获取书名和作者测试

在谷歌里安装一个xpath的插件

python使用XPath解析数据爬取起点小说网数据

在html中查找book-mid-info

python使用XPath解析数据爬取起点小说网数据

我们要获取小说的名称: 也就是 //div[@class='book-mid-info']/h4/a/txt()

python使用XPath解析数据爬取起点小说网数据

再加一个获取作者:

python使用XPath解析数据爬取起点小说网数据

使用xpath获取起点小说网的数据

# 作者:互联网老辛
# 开发时间:2021/4/8/0008 8:24

import requests
from lxml import etree
url="https://www.qidian.com/rank/yuepiao"
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
#发送请求
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"]/h4/a/text()')
authors=e.xpath('//p[@class="author"]/a[1]/text()')
print(names)
print(authors)
#名称和作者对应
for name,authors in zip(names,authors):
    print(name,":",authors)

以上就是python使用XPath解析数据爬取起点小说网数据的详细内容,更多关于python XPath解析数据爬取起点小说网的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
Python3处理文件中每个词的方法
2015/05/22 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Keras实现DenseNet结构操作
2020/07/06 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
运动会解说词50字
2014/01/18 职场文书
公司授权委托书范文
2014/09/21 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android