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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
django实现前后台交互实例
Aug 07 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python3.5集合及其常见运算实例详解
May 01 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
Python random库使用方法及异常处理方案
Mar 02 Python
分享python函数常见关键字
Apr 26 Python
Python实现数据的序列化操作详解
Jul 07 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
Javascript - HTML的request类
2007/01/09 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
解决python删除文件的权限错误问题
2018/04/24 Python
python列表list保留顺序去重的实例
2018/12/14 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
运动会入场词100字
2014/02/06 职场文书
家长学校工作方案
2014/05/07 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
预备党员转正材料
2014/12/19 职场文书
教师培训简讯
2015/07/20 职场文书
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL