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中的匿名函数使用简介
Apr 27 Python
python获取多线程及子线程的返回值
Nov 15 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
Python的缺点和劣势分析
Nov 19 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python 装饰器重要在哪
Feb 14 Python
Django实现简单的分页功能
Feb 22 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php中socket的用法详解
2014/10/24 PHP
php绘制圆形的方法
2015/01/24 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
JavaScript继承方式实例
2010/10/29 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
关于vue中 $emit的用法详解
2018/04/12 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
仓管岗位职责范本
2014/02/08 职场文书
小学捐书活动总结
2014/07/05 职场文书
黄河绝恋观后感
2015/06/08 职场文书
实战Python爬虫爬取酷我音乐
2022/04/11 Python