ygp-gdzwfw-gov-cn/README.md
秦秋旭 3fd01daccc 添加 Excel/WPS 使用提示
- 提醒用户另存为 .xlsx 格式
- 说明分隔符选择逗号
- 编码设置提示

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 00:47:05 +08:00

128 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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