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中的集合类型知识讲解
Aug 19 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
Python模拟三级菜单效果
Sep 11 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
Python中的Numpy矩阵操作
Aug 12 Python
简单了解django orm中介模型
Jul 30 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
jupyter notebook的安装与使用详解
May 18 Python
Python进行统计建模
Aug 10 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
python 合并多个excel中同名的sheet
Jan 22 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python是怎样处理json模块的
2020/07/16 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
洗发露广告词
2014/03/14 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
环保建议书500字
2014/05/14 职场文书
趣味运动会广播稿
2014/09/13 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
大学生十八大感想
2015/08/11 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers