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

北京新发地网页信息爬取

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%
相似推荐
猪好多网
猪好多网创建于2017年,是生猪产业链垂直门户资讯网站、知名媒体。猪好多网希望利用互联网技术,加强养猪人与养猪人、养猪人与企业、企业与企业的交流与信息共享,加强养猪行业信息化、数字化的快速发展。公司运营团队致力于搭建生猪全产业链最具影响力的信息平台、知识平台、新媒体平台和畜牧营销互动平台。打造专业高效——服务于畜牧业、养猪全产业链的移动互联网与大数据服务平台。
桌面系统监控工具-硬件检测悬浮窗
在桌面右下角放一个置顶半透明悬浮窗,实时看CPU、内存、磁盘繁忙度、网络速率。后台线程用PDH采样,窗口画60点迷你折线。超阈值会闪烁,托盘弹出气泡。支持拖动位置、透明度、刷新周期、置顶/隐藏、复位位置。配置写到%APPDATA%\SystemMonitor\config.ini,单实例互斥,带Release可执行文件。
美发&按摩店预约程序
为软件园区大厦下属的理发店和按摩店开发预约程序。 围绕美发预约核心业务,搭建技师排班、用户预约、订单管理、会员维护整套业务架构,通过时间分片校验算法规避档期冲突,实现在线下单、状态流转、预约提醒全流程闭环。开发配套后台管理功能,支持门店维护服务项目、调整排班、统计营业数据,完全替代传统人工台账模式,依托园区APP实现内部用户快速访问,完成园区美发服务数字化升级。
Romance Generator
Romance Generator 是一个浪漫方案生成工具,作品集将其定义为“Web 应用 · 浪漫方案生成”。 项目面向需要策划约会、纪念日、表白或其他浪漫活动的用户,通过 AI 或规则化内容生成能力,为用户提供个性化的活动创意和方案。 涉及的功能包括:用户输入需求和偏好、选择预算或场景、选择关系阶段或活动类型、AI 生成个性化浪漫方案、输出活动建议、流程或文案
MailDock
MailDock 是一个临时邮箱 Web 应用,作品集明确标注为“Web 应用 · 临时邮箱”。 该项目主要解决用户在注册网站、测试服务或进行临时信息接收时,不希望直接暴露个人常用邮箱的问题。 核心业务功能通常包括: 临时邮箱地址生成、邮件接收、收件箱展示、邮件内容查看、临时身份隔离、邮箱地址复制和使用
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服