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实现的多线程http压力测试代码
Feb 08 Python
spyder常用快捷键(分享)
Jul 19 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
使用Python制作简单的小程序IP查看器功能
Apr 16 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
python神经网络编程实现手写数字识别
May 27 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Python descriptor(描述符)的实现
Nov 15 Python
python之openpyxl模块的安装和基本用法(excel管理)
Feb 03 Python
python批量创建变量并赋值操作
Jun 03 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python动态加载变量示例分享
2014/02/17 Python
python实现udp数据报传输的方法
2014/09/26 Python
python实现合并两个数组的方法
2015/05/16 Python
Python实现快速多线程ping的方法
2015/07/15 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
求职信格式范本
2013/11/15 职场文书
电焊工岗位职责
2014/03/06 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
css3带你实现3D转换效果
2022/02/24 HTML / CSS