【愚公系列】《Python网络爬虫从入门到精通》064-项目实战电商数据侦探(外设产品热卖榜)
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟
📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!
👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!
💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者
🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主
📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
每日更新硬核教程+实战案例,助你打通技术任督二脉!
💌【特别邀请】
正在构建技术人脉圈的你:
👍 如果这篇推文让你收获满满,点击"在看"传递技术火炬
💬 在评论区留下你最想学习的技术方向
⭐ 点击"收藏"建立你的私人知识库
🔔 关注公众号获取独家技术内参
✨与其仰望大神,不如成为大神!关注"愚公搬代码",让坚持的力量带你穿越技术迷雾,见证从量变到质变的奇迹!✨ |
🚀前言
我们已经完成了电商数据侦探项目的多个环节,包括需求分析、系统设计、UI设计、数据爬取和展示等。而今天,我们将进入一个新的实战模块——外设产品热卖榜。
在电商平台中,热卖榜单是消费者用来参考商品购买决策的重要依据,尤其是在竞争激烈的外设产品市场中,热销产品往往能够迅速吸引大量关注。作为一名爬虫开发者,抓取并分析这些热销产品的数据,能够帮助商家了解市场趋势,为产品推广与定价提供有力的数据支持。
在本篇文章中,我们将着重学习如何构建一个外设产品热卖榜,并且基于我们爬取的电商数据进行展示和分析。具体内容包括:
- 热卖榜单的需求分析:根据电商平台的特点,分析哪些因素会影响外设产品的热销排名,如销量、评价、价格等,明确热卖榜单的抓取指标。
- 数据获取与筛选:通过爬虫获取电商平台上的外设产品数据,并根据销量、评价数等指标筛选出热卖产品。
- 热卖榜的排序与展示:根据爬取的数据进行排序,制作外设产品热卖榜,并在主窗体中展示出来。
- 热销产品趋势分析:对热卖榜中的外设产品进行分析,揭示背后的市场趋势,例如哪些品牌和品类的外设产品更受欢迎。
- 图形化数据展示:通过图表或列表形式,将外设热卖榜的排名、销量、价格等信息清晰呈现,帮助用户直观了解市场动态。
通过本篇文章的学习,你将不仅学会如何抓取和处理外设产品的热销数据,还能将其呈现给用户,帮助他们快速找到市场上最热的外设产品。同时,你也将加深对电商数据分析、趋势洞察和数据可视化展示的理解和实践。
🚀一、外设产品热卖榜
在实现显示外设产品热卖榜时,我们需要先创建一个窗体,展示热卖排行数据,并通过表格控件显示数据。
🔎1.设计外设产品热卖榜窗体
使用 Qt Designer 工具设计外设产品热卖榜窗体:
- 打开 Qt Designer 工具。
- 设置窗体的最大尺寸与最小尺寸为 1040x600。
- 移除默认的状态栏(status bar)和菜单栏(menu bar)。
- 向窗体中拖入一个 QTableWidget 控件,用于显示外设产品热卖排行信息。
- 拖入一个 QLabel 控件,用于显示排行榜的标题。
- 保存窗体设计为 heat_window.ui 文件。
窗体设计预览效果如下图:
🔎2.转换为 Python 文件并修改
将 heat_window.ui 文件转换为 Python 文件 heat_window.py。打开转换后的文件并进行修改:
- 修改自动生成的
Ui_MainWindow
类为Heat_MainWindow
类。 - 导入必要的模块和类。
🔎3. 导入热卖榜窗体类
在 show_window.py 文件中,导入刚刚创建的热卖排行榜窗体类:
from heat_window import Heat_MainWindow # 导入热卖排行榜窗体类
🔎4.创建 Heat
类并初始化表格数据
在 show_window.py 文件中创建 Heat
类,并在其 __init__()
方法中初始化热卖榜表格数据:
from PyQt5 import QtGui, QtWidgets
class Heat(QMainWindow, Heat_MainWindow):
def __init__(self):
super(Heat, self).__init__()
self.setupUi(self) # 设置UI
self.centralwidget.setAutoFillBackground(True) # 开启自动填充背景
palette = QtGui.QPalette() # 创建调色板对象
palette.setBrush(QtGui.QPalette.Background, QtGui.QBrush(QtGui.QPixmap('img_resources/rankings_bg.png'))) # 设置背景图片
self.centralwidget.setPalette(palette) # 设置背景
# 获取热卖排行榜数据
row, column, results = mysql.query_rankings(cur, 'jd_ranking')
# 设置表格不可编辑
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tableWidget.verticalHeader().setHidden(True) # 隐藏行号
# 设置表格行列数
self.tableWidget.setRowCount(row)
self.tableWidget.setColumnCount(column)
# 设置表格头部标签
self.tableWidget.setHorizontalHeaderLabels(['排名', '商品名称', '京东价', '京东 ID', '好评率'])
self.tableWidget.setStyleSheet("background-color:rgba(0,0,0,0)") # 设置透明背景
# 拉伸表格根据窗体大小
self.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
# 填充表格内容
for i in range(row):
for j in range(column):
temp_data = results[i][j] # 临时记录数据
data = QtWidgets.QTableWidgetItem(str(temp_data)) # 转换为可以插入表格的项
self.tableWidget.setItem(i, j, data) # 插入数据
🔎5.创建 open()
和 heat_itemDoubleClicked()
方法
在 Heat 类中,创建 open()
方法用于打开热卖榜窗体,并处理表格项的双击事件,展示商品的关注确认窗口:
class Heat(QMainWindow, Heat_MainWindow):
def open(self):
self.show() # 显示热卖榜窗体
def heat_itemDoubleClicked(self):
item = self.tableWidget.currentItem() # 获取当前点击的表格项
if item.column() == 1: # 判断是否点击商品名称列
attention.lineEdit.setText(item.text()) # 显示商品名称在关注编辑框
global attention_info
attention_info = mysql.query_id_info(cur, item.row() + 1) # 获取关注商品的详细信息
attention.open() # 显示关注窗体
🔎6.配置事件处理方法
在主程序中,指定取消关注按钮事件之后,创建热卖排行榜窗体对象并配置双击事件处理方法。代码如下:
# 创建热卖排行榜窗体对象
heat = Heat()
# 设置表格项的双击事件处理方法
heat.tableWidget.itemDoubleClicked.connect(heat.heat_itemDoubleClicked)
# 主窗体菜单项触发打开热卖排行榜窗体的事件处理方法
main.action_heat.triggered.connect(heat.open)
🔎7.运行程序并查看效果
-
运行 show_window.py 文件。
-
在主窗体左侧顶部的菜单中,选择 外设产品热卖榜 选项(如图所示)。
-
打开外设产品热卖榜窗体后,双击某个商品名称,将弹出确认关注的窗体(如图所示)。
- 点赞
- 收藏
- 关注作者
评论(0)