python爬虫数据解析总结
python爬虫数据解析总结
目录
- python爬虫数据解析总结
- 1.概述
- 2.Xpath解析html数据
- 2.1.基本语法
- 1.查询语法
- 2.2.Xpath解析html数据
- 1.安装lxml库
- 2.xpath解析本地文件示例
- 3.jsonpath解析json数据
- 3.1.jsonpath语法
- 1.jsonpath主要语法
- 2.jsonpath与XPath进行比较
- 3.2.解析json数据示例
- 1.安装jsonpath库
- 2.解析数据文件
- 3.解析示例
- 3.3.解析淘票票网站json数据示例
- 4.Beautiful Soup解析HTML或XML数据
- 4.1.Beautiful Soup基础语法使用示例
- 4.2.Beautiful Soup解析星巴克官网数据
1.概述
获取数据中包含了我们需要的数据和不需要的数据,这个时候可以利用一些规则过滤数据,只保留需要的数据。
2.Xpath解析html数据
Xpath解析数据分为解析本地文件数据和解析请求返回的数据,不论解析哪种数据方法都是一样的。
2.1.基本语法
1.查询语法
# 1.路径查询
// 查询所有子孙节点,不考虑层级关系
/ 查询直接子节点# 2.id查询
//div[@id]:查询所有包含id的div标签
//div[@id="top"]# 3.属性查询
//@class# 4.模糊查询
//div[contains(@id, "he")]
//div[starts-with(@id, "he")]# 5.内容查询,text函数返回查询到的内容
//div/h1/text()# 6.逻辑运算
//div[@id="head" and @class="s_down"]
//title | //price
2.2.Xpath解析html数据
1.安装lxml库
在使用xpath语法解析html文件前需要先安装lxml库,通过python安装。
# pip方式安装
pip install lxml
# pipenv方式安装 --dev 只安装到开发环境
pipenv install --dev lxml
2.xpath解析本地文件示例
被解析本地html文件代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>path解析HTML文件</title>
</head>
<body><ul><li>北京</li><li>上海</li><li>深圳</li><li>武汉</li></ul><ul><li>大连</li><li>锦州</li><li>沈阳</li></ul>
</body>
</html>
xpath解析html代码
from lxml import etree'''xpath可以解析本地文件和请求接口响应数据解析本地文件使用 etree.parse解析服务器响应数据 etree.HTML()
'''# xpath 解析本地文件
tree = etree.parse('./path.html')# 路径查询
li_list = tree.xpath('//body/ul/li')
print(li_list)# id查询,查询有id 的li, text()函数获取标签中的内容
id_list = tree.xpath('//body/ul/li[@id]/text()')
print(id_list)# 查询指定id值的标签内容
id_l1 = tree.xpath('//body/ul/li[@id="l1"]/text()')
print(id_l1)# 查找id为l1的li标签的class的属性值
li = tree.xpath('//ul/li[@id="l1"]/@class')# 查询id值包含l的li标签
li = tree.xpath('//ul/li[contains(@id, "l")]/text()')
print(li)# 查询id的值以l开头的li标签
li_start = tree.xpath('//ul/li[starts-with(@id, "l")]/text()')
print(li_start)# 查询id为l1和class为c1的内容
li_list = tree.xpath('//ul/li[@id="l1" and @claa="c1"]/text()')# 查询id为l1或者id为l2内容
li_list = tree.xpath('//ul/li[@id="l1"]/text() | //ul/li[@id="l2"]/text()')
3.jsonpath解析json数据
当我们需要解析json格式数据时,需要使用jsonpath库提供的方法来解析数据。
3.1.jsonpath语法
1.jsonpath主要语法
- $ 表示文档的根元素
- @ 表示文档的当前元素
- .node_name 或 [‘node_name’] 匹配下级节点
- [index] 检索数组中的元素
- [start
python爬虫数据解析总结相关推荐
- python爬虫—数据解析
1 requests库的深度应用 网页信息采集 import requestsif __name__=="__main__":url=""#将参数封装到字典中k ...
- python爬虫数据解析xpath解析详细讲解——附有详细案例
案例③由于时间流逝,网页爬取失效了 最近考研复试,增加一个案例,爬取985211学校,并以excel表格形式存储 文章目录 1.什么是xpath 是最常用的最广泛的数据解析方式 2.xpath解析原理 ...
- python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析
标签:pattern div mat txt 保存 关于 json result with open 关于正则表达式的更多用法,可参考链接:https://blog.c ...
- python层级抓取_070.Python聚焦爬虫数据解析
一 聚焦爬虫数据解析 1.1 基本介绍 聚焦爬虫的编码流程 指定url 基于requests模块发起请求 获取响应对象中的数据 数据解析 进行持久化存储 如何实现数据解析 三种数据解析方式 正则表达式 ...
- python爬虫正则表达式实例-python爬虫 正则表达式解析
这篇文章主要介绍了python爬虫 正则表达式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 - re.I # 忽略大小写 - re.M # 多 ...
- 硬核来袭!!!一篇文章教你入门Python爬虫网页解析神器——BeautifulSoup详细讲解
文章目录 一.BeautifulSoup介绍 二.安装 三.bs4数据解析的原理 四.bs4 常用的方法和属性 1.BeautifulSoup构建 1.1 通过字符串构建 1.2 从文件加载 2.Be ...
- 爬虫数据解析的三方式
2.爬虫数据解析的三方式 一.正则表达式解析 常用正则表达式回顾: 单字符:. : 除换行以外所有字符[] :[aoe] [a-w] 匹配集合中任意一个字符\d :数字 [0-9]\D : 非数字\w ...
- python 爬虫 数据抓取的三种方式
python 爬虫 数据抓取的三种方式 常用抽取网页数据的方式有三种:正则表达式.Beautiful Soup.lxml 1.正则表达式 正则表达式有个很大的缺点是难以构造.可读性差.不易适用未来 ...
- Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv
python爬虫数据写入csv文件中文乱码,用'utf-8'在pycharm中打开文件没有问题,但是用excel打开却出现了问题,以下为解决方法. (最近在练习爬虫,这个博文是对自己学习的记录和分享, ...
最新文章
- 读取复杂结构的yml配置项
- xcode5 中Provisioning Profiles列表清理方法
- scanf函数使用遇到的问题
- generator自动生成mybatis的xml配置
- Android windowSoftInputMode属性解析
- 工作206:修改新增按钮显示逻辑
- ECLIPSE配置OSGI服务器
- (转)CDN是如何工作的?
- c语言密码强度的判断程序,C语言实现密码强度检测
- iMpACT中的Xilinx Prom烧录
- 奥威尔:老大哥在看着你-软件公司十诫
- 数据库中常用使用场景
- 【年终总结】投身福报,我的2021年终总结
- 统一资源定位符URL和统一资源标识符URI
- 第三阶段应用层——1.7 数码相册—电子书(3)—轮询方式支持多输入
- 数学建模——MATLAB基础知识
- 计算机计算器logo,电脑计算器在哪打开
- java调用shell脚本,解决传参和权限问题
- Markdown图片路径的改变方法
- 二维离散变换由c语言编写,离散余弦变换(DCT)的DSP程序设计与实现
热门文章
- R语言使用epiDisplay包的followup.plot函数可视化多个ID(病例)监测指标的纵向随访图
- 视频技术的发展对车载移动远程监控行业有何影响?
- 在谈谈第一性原理计算
- 解决安装Adobe Acrobat 8.0提示验证原版序列号的问题
- 谈谈你对java的理解,java是“解释执行”这句话对吗?
- labview通用视觉软件框架,机器视觉通用框架,里面有安装教程
- 吃个快餐都能学到串行、并行、并发
- python2.7.13交叉编译移植到arm
- 苹果屏幕一半失灵一半好的_抖音直播一半屏幕一半人,抖音直播双屏怎么设置的...
- PySpark之RDD基本操作
- python爬虫—数据解析