零基础爬什么值得买的榜单——爬虫练习题目一(答三)

一步一步似爪牙,先给爷爬一个!

    • 引言
    • 分析数据
      • 上一节代码
      • 运行
    • 工具: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 在线解析

在这里插入图片描述

  1. 喝水不忘挖井人,这是菜鸟工具开发的
  2. 左边是JSON数据输入
  3. 右边是数据格式化,使得数据直观

使用实操

把我们的的数据复制一下,粘贴到左边的文本框
在这里插入图片描述
点一下 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字典的形式存储和打印这些信息。

知识点

  1. JSON数据解析json.loads(formatted_data) 使用了 Python 标准库 json 中的 loads 函数,该函数将一个格式化后的 JSON 字符串转化为 Python 数据结构(通常是字典或列表)。这里的目的是将从某个来源获取的JSON格式的数据转换为Python可以处理的字典数组。

  2. 访问字典元素:通过键值对的方式提取所需信息。例如,product["article_pic_url"] 是从转化后的字典数组中的第一个商品对象中提取“主图链接”这一属性值。

  3. 字典构建与赋值:使用花括号 {} 创建了一个新的字典 product_info,并用已提取的商品属性填充。这个操作的目的在于整理和集中展示商品的关键信息。

  4. 变量引用product = data_dict[0] 这一行选择了从JSON数据转化得到的数组(列表)中的第一个元素,即第一个商品的所有信息。

  5. 输出结果:最后通过 print(product_info) 输出整理好的单个商品信息字典,方便查看或者后续进一步处理。

结尾

我们这个实操但也是教程
里面有的知识点我们要及时掌握
在实践中学习
是我认为最佳的学习方式

上等人不用教就是这个道理
我实践一遍,这些知识点你同时也掌握了
后面再有同样的事
你也能够自己来
在这里插入图片描述

所以这里我就不追求快
而是一步步来
且大家也可以看到我的思路
我不会一开始就要结果
而是分开一步步
先爬一个商品
在获取整页的全部商品
再获取其他页的内容
最后才是全部的内容
那么
下一期我们的内容
你知道了吗?
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369944.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI Infra论文阅读之将流水线并行气泡几乎降到零(附基于Meagtron-LM的ZB-H1开源代码实现解读)

0x0. 前言 这篇论文对应的链接为:https://openreview.net/pdf?idtuzTN0eIO5 ,最近被ICLR 2024接收,但不少AI Infra的同行已经发现了这个工作的价值,并且已经开源在 https://github.com/sail-sg/zero-bubble-pipeline-parallelis…

编写程序实现二叉树的创建,三种遍历自己销毁

#include <myhead.h>// 定义二叉树节点结构体 struct tree {char value; //二叉树的值struct tree* left; //左子树struct tree* right; //右子树 };// 创建节点 struct tree* create_node(int value) {//申请空间struct tree* new (struct tree*)malloc(sizeof(st…

[Python] opencv - 什么是直方图?如何绘制图像的直方图?

什么是直方图&#xff1f; 直方图是一种统计图&#xff0c;用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分&#xff0c;然后计算在每个区间或组内的数据频数或频率&#xff08;即数据出现的次数或占比&#xff09;&#xff0c;然后用矩形或者柱形图的形式将这…

学成在线:媒体资源管理系统(MAM)

媒体资源管理系统(MAM) 媒体资源管理系统(Media Asset Management)是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容进行数字化存储、管理以及应用的总体解决方案,可以满足媒体资源拥有者收集、保存、查找、编辑、发布各种信息的要求,为媒体资源…

Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1

目录 【问题描述】maven环境报错 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 【解决办法】 检查maven路径是否一致 路径一致的话&#xff0c;更改配置文件settings.xml的镜像源。 添加代码到 <mirrors> <!-- 阿里镜像 --> &l…

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

Transformer实战-系列教程1:Transformer算法解读1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 Transformer实战-系列教程1&#xff1a;Transformer算法解读1 Transformer实战-系列教程2&#xff1a;Transformer算法解读2 现在最火的AI内容&#xff0c;chatGPT、视觉大模…

初识webpack(一)概念、入口配置、输出配置、loader等

目录 (一)概念 webpack的依赖图 (二)webpack的基本使用 (三)webpack的配置文件 1.入口(entry)配置 2.输出(output)配置 (三)loader 1.css文件处理 (1)安装css-loader和style-loader (2)在webpack.config.js中配置loader 2.less文件处理 3.postcss的使用 (1)安装…

mysql索引有哪些,如何分类

前言 按数据结构分类可分为&#xff1a;Btree索引、Hash索引、Full-text索引。 按物理存储分类可分为&#xff1a;聚簇索引、二级索引&#xff08;辅助索引&#xff09;。 按字段特性分类可分为&#xff1a;主键索引、普通索引、前缀索引。 按字段个数分类可分为&#xff1…

C++拷贝构造函数、赋值运算符重载

1.拷贝构造函数 拷贝构造函数的写法如图所示 调用方式如下 接下来我来说说它的特征 1.1特征 拷贝构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c;在用已存在的类类型对象创建新对象时由编译器自动调用。 拷贝构造函…

推荐系统(Recommender Systems)

一、问题形式化 在接下来的内容中&#xff0c;我将开始讲解推荐系统的一些理论知识。我们从一个例子开始定义推荐系统&#xff0c;假使我们是一个电影供应商&#xff0c;我们有 5 部电影和 4 个用户&#xff0c;我们要求用户为电影打分 前三部电影是爱情片&#xff0c;后两部是…

GPT用来润色论文\生成完整长篇论文\进行AI绘图,真的太香了!

详情点击公众号&#xff1a;技术科研吧 链接&#xff1a;GPT用来润色论文\生成完整长篇论文\进行AI绘图&#xff0c;真的太香了&#xff01; 一&#xff1a;AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百…

歌声悠扬如往昔

有一首歌 - 朱晓琳&#xff08;网易云单曲&#xff09; 作词 : 陈彼得作曲 : 陈彼得有一首歌我想起你那时候微风轻轻有一首歌我想起你你的感觉温馨有多少的欢笑就有多少的忧伤 愿时光在这里停住(好景不常在)歌声悠扬如往昔哦哦哦咿咿咿有一首歌我和你词意朦胧旋律依稀唱一首歌…

云端录制直播流视频,上传云盘

前言 哪一天我心血来潮&#xff0c;想把我儿子学校的摄像头视频流录制下来&#xff0c;并保存到云盘上&#xff0c;这样我就可以在有空的时候看看我儿子在学校干嘛。想到么就干&#xff0c;当时花了一些时间开发了一个后端服务&#xff0c;通过数据库配置录制参数&#xff0c;…

Vue引入Axios

1.命令安装axios和vue-axios npm install axios --save npm install vue-axios --save 2.package.json查看版本 3.在main.js中引用 import axios from axios; import VueAxios from vue-axios; Vue.use(VueAxios,axios) 4.如何使用 &#xff08;初始化方法&#xff09; 将下列代…

微信小程序实现时间轴效果

目录 引言时间轴效果的应用场景微信小程序的优势时间轴效果的设计思路时间轴界面布局数据结构设计实现时间轴效果WXML结构设计WXSS样式设计JavaScript逻辑实现说明引言 时间轴效果的应用场景 时间轴效果作为一种独特且直观的信息展示形式,已经被广泛应用于各种场景中,提供了…

2023年最受欢迎的4款绘图软件全面评测!

无论你是一个专业的插画家&#xff0c;还是一个有创造力的人&#xff0c;想要随时记录生活的灵感&#xff0c;现在你只需要拿起平板电脑或打开电脑浏览器来描述你脑海中的图片。在这篇文章中&#xff0c;我们选择了四个强大、方便和易于使用的绘图软件&#xff0c;其中一个必须…

【算法】{画决策树 + dfs + 递归 + 回溯 + 剪枝} 解决排列、子集问题(C++)

文章目录 1. 前言2. 算法例题46.全排列78.子集 1. 前言 dfs问题 我们已经学过&#xff0c;对于排列、子集类的问题&#xff0c;一般可以想到暴力枚举&#xff0c;但此类问题用暴力解法 一般都会超时&#xff0c;时间开销过大。对于该种问题&#xff0c;重点在于尽可能详细的 画…

【python】pyqt6信号与槽的代码与designer设置方法

pyqt6信号与槽的作用 整体过程 对象&#xff08;控件&#xff09;接收到一个信号&#xff08;类似clicked这样的函数&#xff09;&#xff0c;就会对接受者&#xff08;自身或者其他控件&#xff09;发出一个我被点击了的信息&#xff0c;然后这个接受者就会执行槽&#xff0…

计算机网络_1.6.3 计算机网络体系结构分层思想举例

1.6.3 计算机网络体系结构分层思想举例 1、实例引入&#xff08;用户在主机中使用浏览器访问web服务器&#xff09;2、从五层原理体系结构的角度研究该实例3、练习题 笔记来源&#xff1a; B站 《深入浅出计算机网络》课程 本节通过一个常见的网络应用实例&#xff0c;来介绍计…