- 提醒用户另存为 .xlsx 格式 - 说明分隔符选择逗号 - 编码设置提示 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
广东省公共资源交易平台爬虫
本项目是一个 Python 爬虫程序,用于抓取 广东省公共资源交易平台 的中标结果公告。
功能特性
- 精准筛选:通过
tradingProcess字段直接筛选中标结果,无需标题关键词过滤。 - 日期范围查询:支持指定开始和结束日期,默认为最近3个月。
- 高效分页:每页 50 条记录,自动处理多页数据抓取。
- API 时间过滤:时间参数直接通过接口
publishStartTime和publishEndTime传入,减少无效数据传输。 - 动态构造 URL:根据接口返回字段自动生成可直接访问的详情页链接。
- 纯 HTTP 请求:直接使用 aiohttp 调用官方 API,无需浏览器,轻量高效。
- CSV 实时保存:数据实时保存到 CSV 文件(带 UTF-8 BOM,Excel 可直接打开),同时输出到终端。
- 自定义输出路径:支持通过参数指定输出文件路径。
- 增量爬取:自动从已有 CSV 文件计算时间范围,只抓取新数据,避免重复。如需全量查询,删除 CSV 文件即可。
- 数据排序:新数据在前,旧数据在后,按发布时间倒序排列。
环境要求
- Python 3.8+
安装步骤
-
克隆项目并进入目录
cd ygp-gdzwfw-gov-cn -
创建并激活虚拟环境 (推荐)
python3 -m venv venv source venv/bin/activate # macOS/Linux # 或 venv\Scripts\activate # Windows -
安装依赖
pip install -r requirements.txt
使用方法
1. 抓取最近3个月的数据 (默认)
直接运行脚本,程序将自动抓取最近3个月的中标结果公告。
python main.py
2. 抓取指定日期范围
使用 --start-date 和 --end-date 参数(格式:YYYY-MM-DD)。
python main.py --start-date 2026-02-01 --end-date 2026-02-04
示例:抓取最近7天的数据
python main.py --start-date 2026-01-29 --end-date 2026-02-05
3. 自定义输出文件路径
使用 -o 或 --output 参数指定输出 CSV 文件的路径(默认为 results.csv)。
python main.py --start-date 2026-02-01 --end-date 2026-02-04 -o my_data.csv
4. 增量爬取(默认开启)
脚本默认启用增量爬取模式。会自动读取已有 CSV 文件,计算时间范围,只抓取新数据。
自动计算日期范围(推荐):
# 自动从已有数据的最新日期+1开始,爬取到今天
python main.py
手动指定日期范围:
# 手动指定日期范围(仍会去重)
python main.py --start-date 2026-02-01 --end-date 2026-02-04
全量查询:
# 删除 CSV 文件后运行,即可进行全量查询
rm results.csv
python main.py
增量爬取特性:
- 自动识别已有 CSV 文件中的数据时间范围
- 自动去重(根据详情链接判断)
- 新数据插入到文件前面,旧数据保留在后面
- 如果无新数据可抓取,自动退出
数据输出示例
终端输出(JSON 格式,便于阅读)
{
"项目标题": "某某项目中标结果公示",
"发布时间": "2026-02-04 17:30:02",
"详细链接": "https://ygp.gdzwfw.gov.cn/#/44/new/jygg/v3/A?noticeId=..."
}
CSV 文件格式
项目标题,发布时间,详细链接
某某项目中标结果公示,2026-02-04 17:30:02,https://ygp.gdzwfw.gov.cn/#/44/new/jygg/v3/A?...
使用提示
用 Excel/WPS 打开 CSV 文件
CSV 文件可直接用 Excel、WPS 等表格软件打开,请注意以下事项:
-
另存为 .xlsx 格式(推荐)
- 打开 CSV 后,建议立即另存为
.xlsx格式,避免数据格式丢失 - 操作:文件 → 另存为 → 选择
.xlsx格式
- 打开 CSV 后,建议立即另存为
-
选择分隔符(如提示)
- 如果软件提示选择分隔符,请选择逗号(,)
- 数据导入向导中,分隔符类型选择"逗号"
-
编码设置(如中文乱码)
- 本 CSV 已添加 UTF-8 BOM 标记,一般可直接识别
- 如遇乱码,请选择编码为 UTF-8