一步一步似爪牙,先给爷爬一个!
- 引言
- 分析数据
- 上一节代码
- 运行
- 工具:JSON 在线解析
- 使用实操
- 获取其中一个数据
- 添加代码
- 知识点
- 结尾
引言
我也太能拖了
这个假期前确实有点懒惰
加上这个周末连班
不能去打篮球
腿没有得到充分的运动
像是千万只蚂蚁在爬一样难受!
今天
我们延续上节
我们获得我们想要的数据之后
就是处理数据
如何清晰地从一堆数据中,提取我们想要的一个商品
分析数据
上一节代码
# 导入requests库,用于发送HTTP请求
import requests
# 导入json库,用于处理JSON数据
import json
# 设置请求的URL地址,包含页码参数
url = "https://faxian.smzdm.com/json_more?filter=h3s0t0f163c5&page=2"
# 设置请求头信息,包括Referer字段和User-Agent字段
headers = {
'Referer': 'https://faxian.smzdm.com/h3s0t0f163c5p1/', # 指定请求来源页面
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36', # 模拟浏览器访问
}
# 发送GET请求到指定URL,并设置请求头信息
response = requests.get(url, headers=headers)
# 打印请求响应的状态码,以确认请求是否成功(状态码为200表示成功)
print(response.status_code)
# 解析返回的JSON格式响应内容并转换为Python字典对象
data_dict = json.loads(response.text)
# 将解析后的数据转回为格式化的JSON字符串(确保非ASCII字符正常显示)
formatted_data = json.dumps(data_dict, ensure_ascii=False)
# 打印已格式化后的JSON数据
print(formatted_data)
运行
得到的两个数据
一个是状态码正常
一个是JSON数据(里面就是我们想要的数据)
那么这么一大堆
我们改如何直观地观察呢?
工具:JSON 在线解析
打开在线网站:JSON 在线解析
- 喝水不忘挖井人,这是菜鸟工具开发的
- 左边是JSON数据输入
- 右边是数据格式化,使得数据直观
使用实操
把我们的的数据复制一下,粘贴到左边的文本框
点一下 2 转换
得到右边数据,再点下 1 和 2
可以清楚得看到
数据是数组的形式
且有18个元素
每个元素里面又有数据
点开其中一个
很清楚了
我们要获取其中的数据,只需要选择第几个,然后用关键词提取相应数据即可。
获取其中一个数据
我们以获取第一个数据为例
添加代码
# JSON数据转化为数组
data_dict = json.loads(formatted_data)
# 提取数组中的商品内容
# 选择第一个商品
product = data_dict[0]
# 利用关键词提取
product_info = {
"main_pic_url": product["article_pic_url"], # 主图链接
"platform": product["article_mall"], # 平台名称
"title": product["article_title"], # 商品标题
"price": product["article_price"], # 商品价格
"comment_count": product["article_comment"], # 评论数量
"link": product["article_link"], # 商品链接
}
print(product_info) # 打印商品信息
这段代码的主要目的是从JSON格式的数据中提取出一个具体商品的各项关键信息,并以Python字典的形式存储和打印这些信息。
知识点
-
JSON数据解析:
json.loads(formatted_data)
使用了 Python 标准库json
中的loads
函数,该函数将一个格式化后的 JSON 字符串转化为 Python 数据结构(通常是字典或列表)。这里的目的是将从某个来源获取的JSON格式的数据转换为Python可以处理的字典数组。 -
访问字典元素:通过键值对的方式提取所需信息。例如,
product["article_pic_url"]
是从转化后的字典数组中的第一个商品对象中提取“主图链接”这一属性值。 -
字典构建与赋值:使用花括号
{}
创建了一个新的字典product_info
,并用已提取的商品属性填充。这个操作的目的在于整理和集中展示商品的关键信息。 -
变量引用:
product = data_dict[0]
这一行选择了从JSON数据转化得到的数组(列表)中的第一个元素,即第一个商品的所有信息。 -
输出结果:最后通过
print(product_info)
输出整理好的单个商品信息字典,方便查看或者后续进一步处理。
结尾
我们这个实操但也是教程
里面有的知识点我们要及时掌握
在实践中学习
是我认为最佳的学习方式
上等人不用教就是这个道理
我实践一遍,这些知识点你同时也掌握了
后面再有同样的事
你也能够自己来
所以这里我就不追求快
而是一步步来
且大家也可以看到我的思路
我不会一开始就要结果
而是分开一步步
先爬一个商品
在获取整页的全部商品
再获取其他页的内容
最后才是全部的内容
那么
下一期我们的内容
你知道了吗?