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中的一些类型转换函数小结
Feb 10 Python
Python制作数据导入导出工具
Jul 31 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python的sorted用法详解
Jun 25 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
python boto和boto3操作bucket的示例
Oct 30 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
python面向对象版学生信息管理系统
Jun 24 Python
Python中文纠错的简单实现
Jul 07 Python
实操Python爬取觅知网素材图片示例
Nov 27 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
JSON语法五大要素图文介绍
2012/12/04 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
2014学年自我鉴定
2014/02/23 职场文书
《穷人》教学反思
2016/02/19 职场文书
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
SQL CASE 表达式的具体使用
2022/03/21 SQL Server