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实现多线程采集的2个代码例子
Jul 07 Python
在Django中编写模版节点及注册标签的方法
Jul 20 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Python iter()函数用法实例分析
Mar 17 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
python数组循环处理方法
Aug 26 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python函数生成器原理及使用详解
Mar 12 Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
You might like
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
jquery div拖动效果示例代码
2013/12/08 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
浅析vue.js数组的变异方法
2018/06/30 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
学习python类方法与对象方法
2016/03/15 Python
浅谈Django REST Framework限速
2017/12/12 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
为什么要做架构设计
2015/07/08 面试题
致百米运动员广播稿
2014/01/29 职场文书
中考冲刺决心书
2014/03/11 职场文书
共产党员承诺书
2014/03/25 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
员工开除通知书
2015/04/25 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书