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实现把xml或xsl转换为html格式
Apr 08 Python
Python生成不重复随机值的方法
May 11 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python 中 list 的各项操作技巧
Apr 13 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
Python实现分段线性插值
Dec 17 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
python实现用于测试网站访问速率的方法
2015/05/26 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
越南综合购物网站:Lazada越南
2019/06/10 全球购物
初婚未育证明
2014/01/15 职场文书
千与千寻观后感
2015/06/04 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS