程序聚合 软件案例 北京新发地网页信息爬取

北京新发地网页信息爬取

2026-07-31 23:56:18
行业:搜索、大数据
载体:网站
技术:Python

业务和功能介绍

一、立项背景和目标
北京新发地农产品批发市场作为全国交易规模最大的农产品专业批发市场,其官网每日发布大量蔬菜、水果等农产品的价格行情数据,涵盖品名、规格、产地、价格区间、发布日期等关键信息。这些价格行情数据分散在多个列表页面中,人工逐条复制品名、最低价、平均价、最高价、规格、产地、单位、发布日期等信息录入 Excel 表格工作量大、效率低下,且分页翻阅统计困难。本项目立项目标:基于 Playwright 自动化浏览器抓取北京新发地农产品批发市场官网多页价格行情数据,自动解析字段并写入 Excel 文件,实现农产品价格数据批量结构化导出,方便后续价格趋势分析、产地分布统计与市场行情归档,同时掌握动态网页分页爬取、XPath 层级定位、openpyxl 表格持久化存储的完整爬虫开发流程。

二、软件功能、核心功能模块介绍
三大核心功能模块

(1)Excel 表格初始化模块:使用 openpyxl 库新建工作簿,创建名为“新发地价格行情”工作表,预先写入表头【一级分类、二级分类、品名、最低价、平均价、最高价、规格、产地、单位、发布日期】,智能设置各列宽度确保数据完整显示,定义全局列表用于临时存储抓取到的结构化数据,为后续数据落地做准备。

(2)浏览器自动化页面交互模块:调用 Playwright 启动本地 Chromium 浏览器,配置可视化运行窗口、操作减速防反爬;自动访问北京新发地农产品批发市场官网价格行情栏目,支持按分类筛选(蔬菜、水果等),自动识别总页数并循环执行分页加载逻辑,每页设置合理等待时间,保证后端动态渲染的价格列表完整加载。

(3)数据解析与表格写入模块:通过层级 XPath 定位每一条价格行情数据 DOM 容器,循环提取一级分类、二级分类、品名、最低价、平均价、最高价、规格、产地、单位、发布日期;增加智能字段清洗逻辑,过滤异常数据和空值,逐条将字段追加写入 Excel 工作表,提供数据去重机制避免重复记录,最终完整保存为本地表格文件。

三、业务流程、功能路径描述
(1)程序初始化:创建 Excel 文件、新建工作表并设置表头及列宽;配置本地 Chromium 浏览器启动路径与反爬兼容参数;提示用户选择需要爬取的农产品分类(默认全部分类);

(2)自动化访问目标网站:打开北京新发地农产品批发市场官网价格行情页面,等待页面完全加载后,通过 XPath 定位分类筛选下拉菜单,根据用户选择模拟点击切换分类,等待列表数据刷新;

(3)分页循环抓取:自动解析总页数,循环执行分页爬取,每一页等待 3-5 秒确保列表数据 JS 渲染完成;定位所有价格行情条目父级容器,获取当前页条目数量;

(4)逐条解析字段:遍历每条条目 DOM 节点,分别提取一级分类、二级分类、品名、最低价、平均价、最高价、规格、产地、单位、发布日期,清洗字符串去除空白字符和无

项目实现

1. 整体架构和设计思路,不同模块使用的技术栈
整体架构
采用 Python 单文件线性执行架构,自上而下分为四层:文件持久化层 → 浏览器驱动层 → 页面交互层 → 数据提取存储层,逻辑简单直观,轻量化无额外中间件,适合小型定向垂直网站数据采集。整体运行流程为:初始化 Excel → 启动浏览器 → 访问目标 URL → 选择分类 → 循环翻页 → 逐条解析 → 写入 Excel → 关闭浏览器。

各模块技术栈
模块 技术选型 用途说明
开发语言 Python 3.12 主编程语言,提供丰富库支持
浏览器自动化 Playwright 同步 API 驱动 Chromium 内核浏览器(本地 Edge/Chrome),解决价格行情列表动态 JS 渲染、接口异步加载无法用静态 requests 抓取的问题;配置 slow_mo 操作延时、wait_for_timeout 页面等待,模拟真人访问行为,规避反爬机制
数据持久化 openpyxl 用于新建 Excel 工作簿、创建工作表、表头写入、行数据追加、列宽设置、本地文件保存,生成可直接打开编辑的 .xlsx 文件
元素定位 绝对路径 + 相对层级 XPath 表达式 通过父容器批量定位 + 内部相对路径二次提取,精准嵌套定位每条价格条目内的品名、价格、规格、产地、日期等子字段
辅助逻辑 while 循环实现自动翻页(直至末页)、try-except 容错处理过滤缺失字段、条件判断进行数据去重和异常值清洗,确保数据质量
2. 本人负责模块与量化成果
本项目为个人独立全流程开发,全权完成代码编写、页面元素调试、分页逻辑、Excel 写入、数据清洗、边界条件限制全部工作:

完成 Chromium 浏览器适配启动配置,支持本地 Edge 或 Chrome 调用,解决自动化操作过快被网站风控拦截的问题(通过 slow_mo=300 和随机延时模拟人类浏览);

编写首页访问、分类菜单点击(支持蔬菜、水果等分类切换)的自动化交互逻辑,并实现页面加载完成后的等待机制;

设计动态分页抓取方案:自动解析页面底部总页数信息,使用 while 循环逐页抓取,每页设置 3-5 秒等待时间保障数据加载完整性;

编写多层嵌套 XPath 定位规则,拆解十个目标字段(一级分类、二级分类、品名、最低价、平均价、最高价、规格、产地、单位、发布日期),对价格字段进行数值格式化(移除“元/斤”等后缀,转换为浮点数),对空值和异常字符进行智能清洗与默认值填充;

对接 openpyxl 实现自动建表、表头填充、列宽自适应、逐条数据追加写入,并在写入前进行去重校验,避免同一数据重复记录;

增加异常处理机制:当某条数据缺失关键字段(如品名或价格)时自动跳过并记录日志,不中断整体抓取流程。

量化成果:可稳定抓取全部分页(通常 30-50 页

示例图片视频


Aaron
30天前活跃
方向: 爬虫/脚本-爬虫/脚本、
交付率:100.00%
相似推荐
智能摄像头管理与远程监控 App
一款面向智能摄像头及家庭安防设备的 Android 应用。用户可通过扫码或设备 ID 添加摄像头,完成 Wi‑Fi 配置和设备管理;连接设备后,可远程查看实时画面、进行对讲、截图与录像,并查看设备中的历史影像。应用还支持移动侦测、报警消息和联动设备管理,以及录像模式、用户权限、存储空间等设备设置。
宠物收养交流平台
项目主要分为“宠物信息展示”和“即时通讯”两部分进行开发,其中使用 JsonWebToken 实现前后端用户验证登录;并配合 Axios 实现前后端数据传输、请求响应拦截等操作;使用阿里云OSS对象存储服务对用户图片进行网上托管; 服务端使用Koa Web应用框架搭建后端,并封装Sql语句对数据库进行相关数据操作;基于socket.io库来实现服务端实时推送消息,客户端并配合使用socket.io-client 库来接收数据,由此实现即时通讯功能;
上上签·-微信
业务和功能介绍 1. 立项背景和目标 平时大家总有拿不定主意的时候:中午吃什么、聚会玩什么、事情选哪个。也有人喜欢求个签讨个好彩头。市面上工具要么功能单一,要么搞得太复杂。我们想做一个小而全的小程序,把"随机决策"和"抽签"放一起,打开就能用,不用登录、不用后端,数据都存在自己手机里,方便又省事。目标就是:想纠结时点一下,马上出结果。 2. 软件功能和核心模块 一共三大块: • 决策器:有抓阄和吃什么两种模式,每种都有转盘、抓阄、抽签三种玩法。选项自己加,还能把常用的选项组合存起来,下次直接用。吃的也可以存几套常吃菜单。 • 抽签(每日一签):每天一次,零点自动刷新,抽完能看历史记录。除了内置签文,也能自己加签。 • 我的:换头像、填昵称,设置默认用哪种决策形式,管理自定义签文,一键清空所有数据。 另外支持把决策结果分享给朋友,抓阄还能拉好友进同一个房间一起抽,可以设置"每人只能抽一次""每种只能被抽一次"。 3. 业务流程和功能路径 • 用决策器:打开小程序 → 进"决策"页 → 选抓阄还是吃什么 → 加选项(或从已存的组里选)→ 选转盘/抓阄/抽签 → 点"开始决策" → 出结果 → 可分享或重新来。 • 用每日一签:进"上上签"页 → 点抽签 → 看签文 → 可看历史。 • 管理个人数据:进"我的"页 → 改头像昵称 / 设决策形式 / 管理签文 / 清空数据。 • 和朋友一起抓阄:决策页 → 加好选项 → 点"邀请好友一起抓阄" → 设规则 → 生成房间分享给朋友 → 大家一起抽
上海数银科技有限公司停车系统-停车+会员
智慧城市是未来城市发展的方向,而智慧停车是其中的一个单元。为了让车主节省时间、室内导航快速找到停车位,离场时可以使用优惠、无感支付不停留出场;车场可以规范化、高效化、清晰化管理,我们开发了智慧停车系统。停车系统包含的子系统有:网关、权限云、优惠云、停车云、支付云、银联支付云、建行支付云、农行支付云、银联商务支付云、发票云、会员云、报表云、对账云、Job、地锁、商城、监控、微消息、短信
AY 手机维修检测设备(ROC-RK3308B-CC Plus)-嵌入式 Linux 手持设备 / 工业检测终端 UI 与本地服务联调
1、立项背景和目标 项目面向手机维修场景,在 Firefly ROC-RK3308B 手持板上提供本地操作界面,完成电池排线信息读取、底层修复、排线固件 OTA、WiFi/系统设置等检测业务。目标是:新板从零可部署、UI 可操作、与本地后端通过本机 HTTP 联通,形成「屏幕操作 → 本地服务 → 串口/云端」闭环。底层 Python 服务非本人从零开发,本人从拿到新板开始负责系统部署、UI 落地与端到端联调。 2、软件功能与核心模块 LVGL 人机界面:主菜单多业务入口(设置、电池修复、点阵/原彩/听筒/相机等);设置页含 WiFi、系统升级入口、服务器/语言/亮度等。 rk_client 通信层:板端 C 通过 curl/HTTP 调用本机 127.0.0.1:8080 后端。 电池与排线:FPC 信息读取、底层修复任务与进度、排线固件列表查询与升级进度展示。 设置子系统:WiFi 扫描连接、亮度 PWM、语言/服务器持久化、界面主题与二级/三级菜单样式统一。 本地后端(联调对象):FastAPI 提供健康检查、Apple/串口/FPC/云端固件列表等 API。 3、业务流程与功能路径 新板部署 → 启动 rk-backend 与 lvgl-ui → 主界面进入业务页 → UI 发 HTTP → 后端驱动串口/排线/云端 → 轮询进度并刷新界面。排线 OTA 路径:插 FPC → POST /fpc/firmware/list 取 sdk_key 与云端 packages → 用户选择后 upgrade → 轮询 progress。电池修复:选容量模式 → 创建任务 → 轮询 → 重启确认。设置路径:二级菜单 → 三级选择面板保存配置并即时预览(如亮度)。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服