当前位置: 首页 > news >正文

102302106陈昭颖食鲜配智厨:数据采集项目实践总结

一,项目背景

项目围绕“食鲜配・智厨”项目展开,该项目聚焦现代都市人群在日常饮食过程中普遍存在的“买菜难、配菜烦、做饭复杂、营养不均衡”等一系列现实痛点,致力于构建一个覆盖“食材选购—菜谱搭配—智能烹饪—健康管理”全过程的一体化智能饮食服务平台。项目以“数据驱动的个性化饮食服务”为核心理念,通过技术手段降低用户在饮食决策与烹饪执行中的认知与操作成本,提升生活品质与健康水平。

二,任务内容

1.爬取所有食材和食材总类的内容

本次项目我爬取的食材网站是苏宁超市https://chaoshi.suning.com/?safp=d488778a.13701.0.812ea3aef7&safpn=10007 ,爬取的食材种类是该网页左侧的相关内容
image
以及红圈食材的具体食材信息:(以水果为例子)
image
利用前面学习的爬虫,我是利用selenium和xpath的爬取方法对各个商品的名字,价格,和图片的url进行爬取
image
相关核心代码:

    # 1. 商品名称(适配两种页面结构)title = "".join(li.xpath('.//div[contains(@class, "title-selling-point")]/a//text() | .//div[2]/div[2]/a//text()')).replace("\n", "").strip()dic["title"] = title if title else "未知名称"# 2. 商品价格(适配拆分的 <i> 标签)price_parts = li.xpath('.//div[2]/div[1]/span//i//text() | .//div[contains(@class, "price-box")]/span//i//text()')if price_parts:price = "".join(price_parts).replace("\n", "").strip()else:price = "".join(li.xpath('.//div[contains(@class, "price-box")]/span[1]//text()')).replace("\n", "").strip()dic["price"] = price if price else "0"# 3. 商品图片(补全协议)img_link = li.xpath('.//div[contains(@class, "img-block")]/a/img/@src | .//img[starts-with(@id, "-") or contains(@src, ".jpg")]/@src')if img_link:img_url = img_link[0].strip()if img_url and not img_url.startswith(('http:', 'https:')):img_url = 'https:' + img_urldic["img_link"] = img_urlelse:dic["img_link"] = ""# 过滤无效数据if dic["title"] == "未知名称" or dic["price"] in ("0", ""):continuedic["category"] = categoryproducts.append(dic)

爬取结果:
image

2.更改第二类前端封面显示

由于爬取的食材顺序不同,前端显示的也不一样,所以为了界面美观我们固定封面显示的商品
我更改了相关view.py的代码和html码
image
image
image

3.录制项目演示视频

image

三,心得体会

本次食鲜配·智厨的项目在组长诗怡的带领之下,我们分工明确并且有计划有目标的完成每个时间段的任务,并且我还运用了前面所学习的爬虫知识点完成所分配给我的任务,有问题我们也一起开会探讨,同时大家也互帮互助,我感受到大家都非常团结,并且我自己也收获良多

http://www.gsyq.cn/news/138080.html

相关文章:

  • 深入理解 Java 获取 Class 对象的四种方式及类加载机制
  • MySQL死锁排查指南
  • pycharm全项目搜索ctrl+shift+F失灵
  • Arduino IDE语言选项修改深度剖析步骤
  • 树莓派5安装ROS2配置步骤完整示例
  • AES 与 SM4 加密算法:深度解析与对比
  • 2025.12.22总结
  • 任务队列满了怎么办?四种线程池拒绝策略
  • 串口通信调试技巧在上位机软件开发中的应用
  • 要不咱也整个长枪短炮?
  • 版本、需求、代码管理制度如何设计
  • 从零开始理解I2S协议工作原理:音频设备入门必看
  • 数据库性能跃迁之道:工程架构与SQL调优的深度协同
  • Elasticsearch日志分析系统部署全流程解析
  • 优化实验资源分配:Multisim主数据库的教学价值解析:核心要点
  • 小程序springboot校园外卖美食配送平台 快递员骑手_53sih559
  • 小程序springboot校园外卖美食配送平台 快递员骑手_53sih559
  • LC.98 | 验证二叉搜索树 | 树 | 中序遍历单调性
  • 什么样的程序员在35岁以后依然被公司抢着要?
  • 【好写作AI】你不是不会写,只是少了一个好工具:补齐论文写作的“关键一环”
  • Unicode中如何表示未收录的生僻字 --浅谈IDS
  • RISC理念在ARM中的体现:通俗解释
  • 智能论文改写工具推荐,8款AI平台助你轻松完成写作
  • 8个AI论文辅助网站对比,提供专业降重与内容生成服务
  • Fmoc保护的双糖基化丝氨酸砌块——复杂糖肽化学合成的精密引擎 CAS号: 878483-09-1
  • 低功耗设备中LCD显示屏串行接口优化方案
  • 2025最新内容整合营销、新媒体广告代运营、达人媒介采买、电商直播、流量投放首要推荐紫龙数科:全域赋能品牌增长,这家服务商实力领跑 - 全局中转站
  • Java毕设选题推荐:基于springboot的篮球管理系统的设计与实现基于springboot的篮球论坛系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 程序员的伪年薪百万还能持续多久?
  • 畅联云和智能物联中台UCC的关系