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中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
Python高级特性 切片 迭代解析
Aug 23 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Python异常类型以及处理方法汇总
Jun 05 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
php中jpgraph类库的使用介绍
2013/08/08 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
php获取文件大小的方法
2014/02/26 PHP
PHP静态文件生成类实例
2014/11/29 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
jquery each()源代码
2011/02/14 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
js实现内置计时器
2019/12/16 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
python cookielib 登录人人网的实现代码
2012/12/19 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
韩国11街:11STREET
2018/03/27 全球购物
庆祝教师节活动方案
2014/01/31 职场文书
优秀医生事迹材料
2014/02/12 职场文书
运动会跳远加油稿
2014/02/20 职场文书
总经理任命书
2014/03/29 职场文书
对孩子的寄语
2014/04/09 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
维稳承诺书
2015/01/20 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
教师师德承诺书2016
2016/03/25 职场文书