十五天学会爬虫:第三天

爬虫第三天

学习目标

  • 能够说明 json相关的方法(load loads dump dumps)
  • 能够说明 jsonpath的使用场景
  • 能够说明 jsonpath的使用(提取 json中的数据)
  • 能够说明 正则表达式的常见语法
  • 能够说明 re模块的常见用法
  • 能够说明 原始字符串r的用法
  • 了解 爬虫的数据的分类

json相关的方法(load loads dump dumps)

一图搞得json库的常用方法

在这里插入图片描述

方法说明
json.loads(obj)将字符串序列化成Python的基本数据类型,注意单引号与双引号
json.dumps(obj)将Python的基本数据类型序列化成字符串
json.load(obj)读取文件中的字符串,序列化成Python的基本数据类型
json.dump(obj)将Python的基本数据类型序列化成字符串并写入到文件中
# 导入json库
In [1]: import json                                                             
# python类型的字典
In [2]: dic = {'k1':123, 'k2':456}                                              
# 字典转字符串
In [3]: str1 = json.dumps(dic)                                                  

In [4]: str1                                                                    
Out[4]: '{"k1": 123, "k2": 456}'
# 字符串转字典
In [5]: dic1 = json.loads(str1)                                                 

In [6]: dic1                                                                    
Out[6]: {'k1': 123, 'k2': 456}
# 将字典转化成字符串并写入文件
In [7]: json.dump(dic ,open('db.json', 'w'))  # 可加参数:ensure_ascii=False
# 从文件中读取字符串并转成字典    
In [10]: str2 = json.load(open('db.json', 'r'))                                 

In [11]: str2                                                                   
Out[11]: {'k1': 123, 'k2': 456}
# 也可以使用request自带的json()方法
import requests
response = requests.get(url)  # response数据必须是json数据,不然会报错
dict_json = response.json()  

pprint格式化输出JSON字符串

pip install pprint  # 安装pprint库
from pprint import pprint
pprint(json_dict)

jsonpath的使用场景

JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具

有时我们需要通过抓包进行数据的获取, jsonpath就是数据提取的工具

jsonpath的使用(提取 json中的数据)

pip install jsonpath  # 安装jsonpath
import jsonpath
res = jsonpath.jsonpath(dic_name, '$..key_name')  # 只接收字典和列表(dict/list)

参考:jsonpath 使用教程(快速处理dict的深度查询)

正则表达式的常见语法

在这里插入图片描述

re模块的常见用法

方法描述
re.match()从字符串的起始位置匹配,匹配成功,返回匹配的对象
re.search()扫描整个字符串并返回第一个成功的匹配
re.findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
re.sub()把字符串中所有匹配正则表达式的地方替换成新的字符串
re.split()将字符串按照正则表达式匹配结果进行分割,返回列表类型
re.complie()生成正则表达式(特殊)

常用修饰符

修饰符描述
re.I使匹配对大小不敏感
re.S匹配包括换行符在内的所有字符(默认不包括换行符)

参考:python常用方法详解

python中原始字符串’r’的用法

原始字符串定义(raw string):所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,原始字符串往往针对特殊字符而言。例如"\n"的原始字符串就是"\n"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值