fix: 修复获取数据日期

This commit is contained in:
李岩岩 2026-04-07 16:21:19 +08:00
parent f6fceee2b1
commit f40900af15
22 changed files with 607 additions and 589 deletions

4
.env
View File

@ -1,2 +1,2 @@
BASE_DIR=/Users/liyanyan/study/house-data-collect BASE_DIR=/app/houseDream
PORT=8888 PORT=8080

159
data/2026-03-18.json Normal file
View File

@ -0,0 +1,159 @@
{
"date": "2026-03-19",
"timestamp": "2026-03-19T10:00:19.723Z",
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": {
"spfsjtj": {
"kspf": {
"kspf_total_units": "88182",
"kspf_total_area": "7434268.3100",
"kspf_residential_units": "38223",
"kspf_residential_area": "2020",
"kspf_commercial_units": "214",
"kspf_office_units": "533",
"kspf_parking_units": "39765"
},
"ysxk": {
"ysxk_license_count": "8",
"ysxk_total_area": "314659.9000",
"ysxk_residential_units": "38223",
"ysxk_residential_area": "2020",
"ysxk_commercial_units": "214",
"ysxk_office_units": "533",
"ysxk_parking_units": "39765"
},
"qfrg": {
"qfrg_total_units": "82",
"qfrg_total_area": "9521.5700",
"qfrg_residential_units": "38223",
"qfrg_residential_area": "2020",
"qfrg_commercial_units": "214",
"qfrg_office_units": "533",
"qfrg_parking_units": "39765"
},
"qfqy": {
"qfqy_total_units": "73",
"qfqy_total_area": "7695.9100",
"qfqy_residential_units": "38223",
"qfqy_residential_area": "2020",
"qfqy_commercial_units": "214",
"qfqy_office_units": "533",
"qfqy_parking_units": "39765"
},
"wyxf": {
"wyxf_total_units": "213714",
"wyxf_total_area": "11396131.1500",
"wyxf_residential_units": "38223",
"wyxf_residential_area": "2020",
"wyxf_commercial_units": "214",
"wyxf_office_units": "533",
"wyxf_parking_units": "39765"
},
"xfxm": {
"xfxm_project_count": "39891",
"xfxm_residential_units": "38223",
"xfxm_residential_area": "2020",
"xfxm_commercial_units": "214",
"xfxm_office_units": "533",
"xfxm_parking_units": "39765",
"xfxm_parking_area": "279369787.5600"
},
"xfrg": {
"xfrg_total_units": "82",
"xfrg_residential_units": "38223",
"xfrg_residential_area": "2020",
"xfrg_commercial_units": "214",
"xfrg_office_units": "533",
"xfrg_parking_units": "39765",
"xfrg_parking_area": "9521.5700"
},
"xfqy": {
"xfqy_total_units": "73",
"xfqy_residential_units": "38223",
"xfqy_residential_area": "2020",
"xfqy_commercial_units": "214",
"xfqy_office_units": "533",
"xfqy_parking_units": "39765",
"xfqy_parking_area": "7695.9100"
}
},
"clfwsqytj": {
"clf_month": {
"clf_month_total_units": "73",
"clf_month_total_area": "7695.9100",
"clf_month_residential_units": "8130",
"clf_month_residential_area": "721746.3800"
},
"clf_day": {
"clf_day_total_units": "73",
"clf_day_total_area": "7695.9100",
"clf_day_residential_units": "8130",
"clf_day_residential_area": "721746.3800"
}
},
"clfwdtj": {
"broker": [
{
"broker_seq": 1,
"broker_name": "北京链家置地房地产经纪有限公司",
"broker_deal_units": 3968,
"broker_refund_units": 67
},
{
"broker_seq": 2,
"broker_name": "北京我爱我家房地产经纪有限公司",
"broker_deal_units": 860,
"broker_refund_units": 27
},
{
"broker_seq": 3,
"broker_name": "北京我爱我家华熙房地产经纪有限公司",
"broker_deal_units": 191,
"broker_refund_units": 4
},
{
"broker_seq": 4,
"broker_name": "北京金色时光房地产经纪有限公司",
"broker_deal_units": 183,
"broker_refund_units": 7
},
{
"broker_seq": 5,
"broker_name": "北京麦田房产经纪有限公司",
"broker_deal_units": 167,
"broker_refund_units": 2
},
{
"broker_seq": 6,
"broker_name": "北京市易合房地产经纪有限责任公司",
"broker_deal_units": 54,
"broker_refund_units": 0
},
{
"broker_seq": 7,
"broker_name": "汇石凯岩(北京)停车管理有限公司",
"broker_deal_units": 45,
"broker_refund_units": 0
},
{
"broker_seq": 8,
"broker_name": "北京金城阜业房地产经纪有限公司",
"broker_deal_units": 40,
"broker_refund_units": 1
},
{
"broker_seq": 9,
"broker_name": "北京市兴商房地产经纪中心有限公司",
"broker_deal_units": 36,
"broker_refund_units": 1
},
{
"broker_seq": 10,
"broker_name": "京安驰(北京)房地产经纪有限公司",
"broker_deal_units": 30,
"broker_refund_units": 3
}
]
}
}
}

View File

@ -1,157 +1,305 @@
{ {
"date": "2026-03-19", "date": "2026-03-20",
"timestamp": "2026-03-19T10:00:19.723Z", "timestamp": 1773998194623,
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749", "source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": { "data": {
"spfsjtj": { "spfsjtj": {
"kspf": { "ksqf": {
"kspf_total_units": "88182", "kspf_total_units": "88034",
"kspf_total_area": "7434268.3100", "kspf_total_area": "7423053.0600",
"kspf_residential_units": "38223", "kspf_residential_units": "38160",
"kspf_residential_area": "2020", "kspf_residential_area": "5321452.7700",
"kspf_commercial_units": "214", "kspf_commercial_units": "214",
"kspf_commercial_area": "159917.8800",
"kspf_office_units": "533", "kspf_office_units": "533",
"kspf_parking_units": "39765" "kspf_office_area": "517721.2300",
"kspf_parking_units": "39683",
"kspf_parking_area": "1111569.5900"
}, },
"ysxk": { "ysxk": {
"ysxk_license_count": "8", "ysxk_license_count": "8",
"ysxk_total_area": "314659.9000", "ysxk_total_area": "314659.9000",
"ysxk_residential_units": "38223", "ysxk_residential_units": "2020",
"ysxk_residential_area": "2020", "ysxk_residential_area": "264160.8100",
"ysxk_commercial_units": "214", "ysxk_commercial_units": "0",
"ysxk_office_units": "533", "ysxk_commercial_area": "0.0000",
"ysxk_parking_units": "39765" "ysxk_office_units": "0",
"ysxk_office_area": "0.0000",
"ysxk_parking_units": "1384",
"ysxk_parking_area": "38546.2200"
}, },
"qfrg": { "qfrg": {
"qfrg_total_units": "82", "qfrg_total_units": "85",
"qfrg_total_area": "9521.5700", "qfrg_total_area": "10122.0000",
"qfrg_residential_units": "38223", "qfrg_residential_units": "83",
"qfrg_residential_area": "2020", "qfrg_residential_area": "10055.8700",
"qfrg_commercial_units": "214", "qfrg_commercial_units": "0",
"qfrg_office_units": "533", "qfrg_commercial_area": "0.0000",
"qfrg_parking_units": "39765" "qfrg_office_units": "0",
"qfrg_office_area": "0.0000",
"qfrg_parking_units": "1",
"qfrg_parking_area": "33.8500"
}, },
"qfqy": { "qfqy": {
"qfqy_total_units": "73", "qfqy_total_units": "159",
"qfqy_total_area": "7695.9100", "qfqy_total_area": "12186.3400",
"qfqy_residential_units": "38223", "qfqy_residential_units": "70",
"qfqy_residential_area": "2020", "qfqy_residential_area": "8725.2800",
"qfqy_commercial_units": "214", "qfqy_commercial_units": "0",
"qfqy_office_units": "533", "qfqy_commercial_area": "0.0000",
"qfqy_parking_units": "39765" "qfqy_office_units": "0",
"qfqy_office_area": "0.0000",
"qfqy_parking_units": "86",
"qfqy_parking_area": "3340.8800"
}, },
"wyxf": { "wyxf": {
"wyxf_total_units": "213714", "wyxf_total_units": "214061",
"wyxf_total_area": "11396131.1500", "wyxf_total_area": "11463428.8300",
"wyxf_residential_units": "38223", "wyxf_residential_units": "30104",
"wyxf_residential_area": "2020", "wyxf_residential_area": "3434275.6000",
"wyxf_commercial_units": "214", "wyxf_commercial_units": "1739",
"wyxf_office_units": "533", "wyxf_commercial_area": "798046.9800",
"wyxf_parking_units": "39765" "wyxf_office_units": "4427",
"wyxf_office_area": "1544716.4200",
"wyxf_parking_units": "124541",
"wyxf_parking_area": "4159255.5300"
}, },
"xfxm": { "xfxm": {
"xfxm_project_count": "39891", "xfxm_project_count": "39902",
"xfxm_residential_units": "38223", "xfxm_total_area": "279449030.4600",
"xfxm_residential_area": "2020", "xfxm_residential_units": "937508",
"xfxm_commercial_units": "214", "xfxm_residential_area": "116806207.2800",
"xfxm_office_units": "533", "xfxm_commercial_units": "96927",
"xfxm_parking_units": "39765", "xfxm_commercial_area": "23085347.5300",
"xfxm_parking_area": "279369787.5600" "xfxm_office_units": "134740",
"xfxm_office_area": "25167845.3100",
"xfxm_parking_units": "826833",
"xfxm_parking_area": "31551000.9200"
}, },
"xfrg": { "xfrg": {
"xfrg_total_units": "82", "xfrg_total_units": "38",
"xfrg_residential_units": "38223", "xfrg_total_area": "4251.7000",
"xfrg_residential_area": "2020", "xfrg_residential_units": "34",
"xfrg_commercial_units": "214", "xfrg_residential_area": "4140.6000",
"xfrg_office_units": "533", "xfrg_commercial_units": "0",
"xfrg_parking_units": "39765", "xfrg_commercial_area": "0.0000",
"xfrg_parking_area": "9521.5700" "xfrg_office_units": "0",
"xfrg_office_area": "0.0000",
"xfrg_parking_units": "2",
"xfrg_parking_area": "70.7200"
}, },
"xfqy": { "xfqy": {
"xfqy_total_units": "73", "xfqy_total_units": "100",
"xfqy_residential_units": "38223", "xfqy_total_area": "6356.1100",
"xfqy_residential_area": "2020", "xfqy_residential_units": "30",
"xfqy_commercial_units": "214", "xfqy_residential_area": "3942.5900",
"xfqy_office_units": "533", "xfqy_commercial_units": "1",
"xfqy_parking_units": "39765", "xfqy_commercial_area": "280.5500",
"xfqy_parking_area": "7695.9100" "xfqy_office_units": "0",
"xfqy_office_area": "0.0000",
"xfqy_parking_units": "44",
"xfqy_parking_area": "1377.8100"
} }
}, },
"clfwsqytj": { "clfwsqytj": {
"clf_month": { "clf_month": {
"clf_month_total_units": "73", "clf_month_total_units": "9111",
"clf_month_total_area": "7695.9100", "clf_month_total_area": "772959.8600",
"clf_month_residential_units": "8130", "clf_month_residential_units": "8130",
"clf_month_residential_area": "721746.3800" "clf_month_residential_area": "721746.3800"
}, },
"clf_day": { "clf_day": {
"clf_day_total_units": "73", "clf_day_total_units": "1014",
"clf_day_total_area": "7695.9100", "clf_day_total_area": "87806.6200",
"clf_day_residential_units": "8130", "clf_day_residential_units": "916",
"clf_day_residential_area": "721746.3800" "clf_day_residential_area": "79638.2500"
} }
}, },
"clfwdtj": { "clfwdtj": {
"broker": [ "broker": [
{ {
"broker_seq": 1, "broker_seq": "1",
"broker_name": "北京链家置地房地产经纪有限公司", "broker_name": "北京链家置地房地产经纪有限公司",
"broker_deal_units": 3968, "broker_deal_units": "3968",
"broker_refund_units": 67 "broker_refund_units": "67"
}, },
{ {
"broker_seq": 2, "broker_seq": "2",
"broker_name": "北京我爱我家房地产经纪有限公司", "broker_name": "北京我爱我家房地产经纪有限公司",
"broker_deal_units": 860, "broker_deal_units": "860",
"broker_refund_units": 27 "broker_refund_units": "27"
}, },
{ {
"broker_seq": 3, "broker_seq": "3",
"broker_name": "北京我爱我家华熙房地产经纪有限公司", "broker_name": "北京我爱我家华熙房地产经纪有限公司",
"broker_deal_units": 191, "broker_deal_units": "191",
"broker_refund_units": 4 "broker_refund_units": "4"
}, },
{ {
"broker_seq": 4, "broker_seq": "4",
"broker_name": "北京金色时光房地产经纪有限公司", "broker_name": "北京金色时光房地产经纪有限公司",
"broker_deal_units": 183, "broker_deal_units": "183",
"broker_refund_units": 7 "broker_refund_units": "7"
}, },
{ {
"broker_seq": 5, "broker_seq": "5",
"broker_name": "北京麦田房产经纪有限公司", "broker_name": "北京麦田房产经纪有限公司",
"broker_deal_units": 167, "broker_deal_units": "167",
"broker_refund_units": 2 "broker_refund_units": "2"
}, },
{ {
"broker_seq": 6, "broker_seq": "6",
"broker_name": "北京市易合房地产经纪有限责任公司", "broker_name": "北京市易合房地产经纪有限责任公司",
"broker_deal_units": 54, "broker_deal_units": "54",
"broker_refund_units": 0 "broker_refund_units": "0"
}, },
{ {
"broker_seq": 7, "broker_seq": "7",
"broker_name": "汇石凯岩(北京)停车管理有限公司", "broker_name": "汇石凯岩(北京)停车管理有限公司",
"broker_deal_units": 45, "broker_deal_units": "45",
"broker_refund_units": 0 "broker_refund_units": "0"
}, },
{ {
"broker_seq": 8, "broker_seq": "8",
"broker_name": "北京金城阜业房地产经纪有限公司", "broker_name": "北京金城阜业房地产经纪有限公司",
"broker_deal_units": 40, "broker_deal_units": "40",
"broker_refund_units": 1 "broker_refund_units": "1"
}, },
{ {
"broker_seq": 9, "broker_seq": "9",
"broker_name": "北京市兴商房地产经纪中心有限公司", "broker_name": "北京市兴商房地产经纪中心有限公司",
"broker_deal_units": 36, "broker_deal_units": "36",
"broker_refund_units": 1 "broker_refund_units": "1"
}, },
{ {
"broker_seq": 10, "broker_seq": "10",
"broker_name": "京安驰(北京)房地产经纪有限公司", "broker_name": "京安驰(北京)房地产经纪有限公司",
"broker_deal_units": 30, "broker_deal_units": "30",
"broker_refund_units": 3 "broker_refund_units": "3"
}
],
"district": [
{
"district_name": "全 市",
"district_deal_units": "9111.0",
"district_deal_area": "772959.86"
},
{
"district_name": "东 城",
"district_deal_units": "368",
"district_deal_area": "26395.3600"
},
{
"district_name": "西 城",
"district_deal_units": "526",
"district_deal_area": "33057.9300"
},
{
"district_name": "朝 阳",
"district_deal_units": "2150",
"district_deal_area": "190029.8400"
},
{
"district_name": "海 淀",
"district_deal_units": "1026",
"district_deal_area": "81386.1200"
},
{
"district_name": "丰 台",
"district_deal_units": "951",
"district_deal_area": "76383.6700"
},
{
"district_name": "石景山",
"district_deal_units": "276",
"district_deal_area": "20243.8900"
},
{
"district_name": "通 州",
"district_deal_units": "651",
"district_deal_area": "57381.0200"
},
{
"district_name": "房 山",
"district_deal_units": "477",
"district_deal_area": "39740.7200"
},
{
"district_name": "顺 义",
"district_deal_units": "477",
"district_deal_area": "48649.5400"
},
{
"district_name": "门头沟",
"district_deal_units": "295",
"district_deal_area": "21153.3900"
},
{
"district_name": "大 兴",
"district_deal_units": "590",
"district_deal_area": "51463.3600"
},
{
"district_name": "怀 柔",
"district_deal_units": "107",
"district_deal_area": "10798.1600"
},
{
"district_name": "密 云",
"district_deal_units": "196",
"district_deal_area": "19915.1000"
},
{
"district_name": "昌 平",
"district_deal_units": "712",
"district_deal_area": "67716.5300"
},
{
"district_name": "延 庆",
"district_deal_units": "102",
"district_deal_area": "8821.4400"
},
{
"district_name": "平 谷",
"district_deal_units": "108",
"district_deal_area": "10040.0800"
},
{
"district_name": "开发区",
"district_deal_units": "99",
"district_deal_area": "9783.7100"
}
],
"area": [
{
"area_range": "60m2以下",
"area_deal_units": "2828",
"area_deal_percent": "127669.4500"
},
{
"area_range": "6080m2",
"area_deal_units": "2200",
"area_deal_percent": "152566.2600"
},
{
"area_range": "80100m2",
"area_deal_units": "1999",
"area_deal_percent": "177844.6000"
},
{
"area_range": "100120m2",
"area_deal_units": "791",
"area_deal_percent": "86075.4300"
},
{
"area_range": "120140m2",
"area_deal_units": "550",
"area_deal_percent": "71435.1700"
},
{
"area_range": "140m2以上",
"area_deal_units": "743",
"area_deal_percent": "157368.9500"
} }
] ]
} }

View File

@ -1,307 +0,0 @@
{
"date": "2026-03-20",
"timestamp": 1773998194623,
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": {
"spfsjtj": {
"ksqf": {
"kspf_total_units": "88034",
"kspf_total_area": "7423053.0600",
"kspf_residential_units": "38160",
"kspf_residential_area": "5321452.7700",
"kspf_commercial_units": "214",
"kspf_commercial_area": "159917.8800",
"kspf_office_units": "533",
"kspf_office_area": "517721.2300",
"kspf_parking_units": "39683",
"kspf_parking_area": "1111569.5900"
},
"ysxk": {
"ysxk_license_count": "8",
"ysxk_total_area": "314659.9000",
"ysxk_residential_units": "2020",
"ysxk_residential_area": "264160.8100",
"ysxk_commercial_units": "0",
"ysxk_commercial_area": "0.0000",
"ysxk_office_units": "0",
"ysxk_office_area": "0.0000",
"ysxk_parking_units": "1384",
"ysxk_parking_area": "38546.2200"
},
"qfrg": {
"qfrg_total_units": "85",
"qfrg_total_area": "10122.0000",
"qfrg_residential_units": "83",
"qfrg_residential_area": "10055.8700",
"qfrg_commercial_units": "0",
"qfrg_commercial_area": "0.0000",
"qfrg_office_units": "0",
"qfrg_office_area": "0.0000",
"qfrg_parking_units": "1",
"qfrg_parking_area": "33.8500"
},
"qfqy": {
"qfqy_total_units": "159",
"qfqy_total_area": "12186.3400",
"qfqy_residential_units": "70",
"qfqy_residential_area": "8725.2800",
"qfqy_commercial_units": "0",
"qfqy_commercial_area": "0.0000",
"qfqy_office_units": "0",
"qfqy_office_area": "0.0000",
"qfqy_parking_units": "86",
"qfqy_parking_area": "3340.8800"
},
"wyxf": {
"wyxf_total_units": "214061",
"wyxf_total_area": "11463428.8300",
"wyxf_residential_units": "30104",
"wyxf_residential_area": "3434275.6000",
"wyxf_commercial_units": "1739",
"wyxf_commercial_area": "798046.9800",
"wyxf_office_units": "4427",
"wyxf_office_area": "1544716.4200",
"wyxf_parking_units": "124541",
"wyxf_parking_area": "4159255.5300"
},
"xfxm": {
"xfxm_project_count": "39902",
"xfxm_total_area": "279449030.4600",
"xfxm_residential_units": "937508",
"xfxm_residential_area": "116806207.2800",
"xfxm_commercial_units": "96927",
"xfxm_commercial_area": "23085347.5300",
"xfxm_office_units": "134740",
"xfxm_office_area": "25167845.3100",
"xfxm_parking_units": "826833",
"xfxm_parking_area": "31551000.9200"
},
"xfrg": {
"xfrg_total_units": "38",
"xfrg_total_area": "4251.7000",
"xfrg_residential_units": "34",
"xfrg_residential_area": "4140.6000",
"xfrg_commercial_units": "0",
"xfrg_commercial_area": "0.0000",
"xfrg_office_units": "0",
"xfrg_office_area": "0.0000",
"xfrg_parking_units": "2",
"xfrg_parking_area": "70.7200"
},
"xfqy": {
"xfqy_total_units": "100",
"xfqy_total_area": "6356.1100",
"xfqy_residential_units": "30",
"xfqy_residential_area": "3942.5900",
"xfqy_commercial_units": "1",
"xfqy_commercial_area": "280.5500",
"xfqy_office_units": "0",
"xfqy_office_area": "0.0000",
"xfqy_parking_units": "44",
"xfqy_parking_area": "1377.8100"
}
},
"clfwsqytj": {
"clf_month": {
"clf_month_total_units": "9111",
"clf_month_total_area": "772959.8600",
"clf_month_residential_units": "8130",
"clf_month_residential_area": "721746.3800"
},
"clf_day": {
"clf_day_total_units": "1014",
"clf_day_total_area": "87806.6200",
"clf_day_residential_units": "916",
"clf_day_residential_area": "79638.2500"
}
},
"clfwdtj": {
"broker": [
{
"broker_seq": "1",
"broker_name": "北京链家置地房地产经纪有限公司",
"broker_deal_units": "3968",
"broker_refund_units": "67"
},
{
"broker_seq": "2",
"broker_name": "北京我爱我家房地产经纪有限公司",
"broker_deal_units": "860",
"broker_refund_units": "27"
},
{
"broker_seq": "3",
"broker_name": "北京我爱我家华熙房地产经纪有限公司",
"broker_deal_units": "191",
"broker_refund_units": "4"
},
{
"broker_seq": "4",
"broker_name": "北京金色时光房地产经纪有限公司",
"broker_deal_units": "183",
"broker_refund_units": "7"
},
{
"broker_seq": "5",
"broker_name": "北京麦田房产经纪有限公司",
"broker_deal_units": "167",
"broker_refund_units": "2"
},
{
"broker_seq": "6",
"broker_name": "北京市易合房地产经纪有限责任公司",
"broker_deal_units": "54",
"broker_refund_units": "0"
},
{
"broker_seq": "7",
"broker_name": "汇石凯岩(北京)停车管理有限公司",
"broker_deal_units": "45",
"broker_refund_units": "0"
},
{
"broker_seq": "8",
"broker_name": "北京金城阜业房地产经纪有限公司",
"broker_deal_units": "40",
"broker_refund_units": "1"
},
{
"broker_seq": "9",
"broker_name": "北京市兴商房地产经纪中心有限公司",
"broker_deal_units": "36",
"broker_refund_units": "1"
},
{
"broker_seq": "10",
"broker_name": "京安驰(北京)房地产经纪有限公司",
"broker_deal_units": "30",
"broker_refund_units": "3"
}
],
"district": [
{
"district_name": "全 市",
"district_deal_units": "9111.0",
"district_deal_area": "772959.86"
},
{
"district_name": "东 城",
"district_deal_units": "368",
"district_deal_area": "26395.3600"
},
{
"district_name": "西 城",
"district_deal_units": "526",
"district_deal_area": "33057.9300"
},
{
"district_name": "朝 阳",
"district_deal_units": "2150",
"district_deal_area": "190029.8400"
},
{
"district_name": "海 淀",
"district_deal_units": "1026",
"district_deal_area": "81386.1200"
},
{
"district_name": "丰 台",
"district_deal_units": "951",
"district_deal_area": "76383.6700"
},
{
"district_name": "石景山",
"district_deal_units": "276",
"district_deal_area": "20243.8900"
},
{
"district_name": "通 州",
"district_deal_units": "651",
"district_deal_area": "57381.0200"
},
{
"district_name": "房 山",
"district_deal_units": "477",
"district_deal_area": "39740.7200"
},
{
"district_name": "顺 义",
"district_deal_units": "477",
"district_deal_area": "48649.5400"
},
{
"district_name": "门头沟",
"district_deal_units": "295",
"district_deal_area": "21153.3900"
},
{
"district_name": "大 兴",
"district_deal_units": "590",
"district_deal_area": "51463.3600"
},
{
"district_name": "怀 柔",
"district_deal_units": "107",
"district_deal_area": "10798.1600"
},
{
"district_name": "密 云",
"district_deal_units": "196",
"district_deal_area": "19915.1000"
},
{
"district_name": "昌 平",
"district_deal_units": "712",
"district_deal_area": "67716.5300"
},
{
"district_name": "延 庆",
"district_deal_units": "102",
"district_deal_area": "8821.4400"
},
{
"district_name": "平 谷",
"district_deal_units": "108",
"district_deal_area": "10040.0800"
},
{
"district_name": "开发区",
"district_deal_units": "99",
"district_deal_area": "9783.7100"
}
],
"area": [
{
"area_range": "60m2以下",
"area_deal_units": "2828",
"area_deal_percent": "127669.4500"
},
{
"area_range": "6080m2",
"area_deal_units": "2200",
"area_deal_percent": "152566.2600"
},
{
"area_range": "80100m2",
"area_deal_units": "1999",
"area_deal_percent": "177844.6000"
},
{
"area_range": "100120m2",
"area_deal_units": "791",
"area_deal_percent": "86075.4300"
},
{
"area_range": "120140m2",
"area_deal_units": "550",
"area_deal_percent": "71435.1700"
},
{
"area_range": "140m2以上",
"area_deal_units": "743",
"area_deal_percent": "157368.9500"
}
]
}
}
}

View File

@ -1,20 +1,20 @@
{ {
"date": "2026-04-03", "date": "2026-04-01",
"timestamp": 1775212025291, "timestamp": 1775038266689,
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749", "source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": { "data": {
"spfsjtj": { "spfsjtj": {
"ksqf": { "ksqf": {
"kspf_total_units": "80345", "kspf_total_units": "84864",
"kspf_total_area": "6996273.6900", "kspf_total_area": "7285656.6100",
"kspf_residential_units": "37208", "kspf_residential_units": "38364",
"kspf_residential_area": "5166395.9800", "kspf_residential_area": "5302089.0400",
"kspf_commercial_units": "212", "kspf_commercial_units": "216",
"kspf_commercial_area": "156893.4400", "kspf_commercial_area": "160382.6300",
"kspf_office_units": "502", "kspf_office_units": "530",
"kspf_office_area": "493647.2500", "kspf_office_area": "515668.8300",
"kspf_parking_units": "33805", "kspf_parking_units": "37008",
"kspf_parking_area": "896549.1900" "kspf_parking_area": "1016071.9000"
}, },
"ysxk": { "ysxk": {
"ysxk_license_count": "8", "ysxk_license_count": "8",
@ -29,76 +29,76 @@
"ysxk_parking_area": "38546.2200" "ysxk_parking_area": "38546.2200"
}, },
"qfrg": { "qfrg": {
"qfrg_total_units": "281", "qfrg_total_units": "200",
"qfrg_total_area": "36336.5400", "qfrg_total_area": "24313.8900",
"qfrg_residential_units": "280", "qfrg_residential_units": "196",
"qfrg_residential_area": "36322.7900", "qfrg_residential_area": "24201.0500",
"qfrg_commercial_units": "0", "qfrg_commercial_units": "0",
"qfrg_commercial_area": "0.0000", "qfrg_commercial_area": "0.0000",
"qfrg_office_units": "0", "qfrg_office_units": "0",
"qfrg_office_area": "0.0000", "qfrg_office_area": "0.0000",
"qfrg_parking_units": "1", "qfrg_parking_units": "3",
"qfrg_parking_area": "13.7500" "qfrg_parking_area": "85.9200"
}, },
"qfqy": { "qfqy": {
"qfqy_total_units": "167", "qfqy_total_units": "623",
"qfqy_total_area": "16116.8900", "qfqy_total_area": "39459.3900",
"qfqy_residential_units": "141", "qfqy_residential_units": "262",
"qfqy_residential_area": "15499.0700", "qfqy_residential_area": "33077.5800",
"qfqy_commercial_units": "0", "qfqy_commercial_units": "0",
"qfqy_commercial_area": "0.0000", "qfqy_commercial_area": "0.0000",
"qfqy_office_units": "0", "qfqy_office_units": "0",
"qfqy_office_area": "0.0000", "qfqy_office_area": "0.0000",
"qfqy_parking_units": "24", "qfqy_parking_units": "331",
"qfqy_parking_area": "505.2100" "qfqy_parking_area": "4606.3400"
}, },
"wyxf": { "wyxf": {
"wyxf_total_units": "213286", "wyxf_total_units": "215281",
"wyxf_total_area": "11448472.2700", "wyxf_total_area": "11647704.7600",
"wyxf_residential_units": "28197", "wyxf_residential_units": "30409",
"wyxf_residential_area": "3331600.8200", "wyxf_residential_area": "3535094.6500",
"wyxf_commercial_units": "1745", "wyxf_commercial_units": "1749",
"wyxf_commercial_area": "883799.8500", "wyxf_commercial_area": "887419.9300",
"wyxf_office_units": "4421", "wyxf_office_units": "4421",
"wyxf_office_area": "1544345.5200", "wyxf_office_area": "1544345.5200",
"wyxf_parking_units": "125515", "wyxf_parking_units": "125267",
"wyxf_parking_area": "4185111.6500" "wyxf_parking_area": "4176024.2400"
}, },
"xfxm": { "xfxm": {
"xfxm_project_count": "39994", "xfxm_project_count": "39991",
"xfxm_total_area": "280033839.0200", "xfxm_total_area": "280021433.3800",
"xfxm_residential_units": "939137", "xfxm_residential_units": "939147",
"xfxm_residential_area": "117058970.5000", "xfxm_residential_area": "117061203.6200",
"xfxm_commercial_units": "96948", "xfxm_commercial_units": "96954",
"xfxm_commercial_area": "23175953.6100", "xfxm_commercial_area": "23177798.2500",
"xfxm_office_units": "134744", "xfxm_office_units": "134737",
"xfxm_office_area": "25165391.1700", "xfxm_office_area": "25167504.6100",
"xfxm_parking_units": "831653", "xfxm_parking_units": "831295",
"xfxm_parking_area": "31692731.6400" "xfxm_parking_area": "31680313.3700"
}, },
"xfrg": { "xfrg": {
"xfrg_total_units": "44", "xfrg_total_units": "60",
"xfrg_total_area": "5222.1600", "xfrg_total_area": "7344.6900",
"xfrg_residential_units": "40", "xfrg_residential_units": "53",
"xfrg_residential_area": "5143.6100", "xfrg_residential_area": "7138.1800",
"xfrg_commercial_units": "0", "xfrg_commercial_units": "0",
"xfrg_commercial_area": "0.0000", "xfrg_commercial_area": "0.0000",
"xfrg_office_units": "0", "xfrg_office_units": "0",
"xfrg_office_area": "0.0000", "xfrg_office_area": "0.0000",
"xfrg_parking_units": "3", "xfrg_parking_units": "4",
"xfrg_parking_area": "59.0200" "xfrg_parking_area": "147.0400"
}, },
"xfqy": { "xfqy": {
"xfqy_total_units": "130", "xfqy_total_units": "528",
"xfqy_total_area": "10809.6000", "xfqy_total_area": "85229.2000",
"xfqy_residential_units": "43", "xfqy_residential_units": "140",
"xfqy_residential_area": "5663.2000", "xfqy_residential_area": "15335.2300",
"xfqy_commercial_units": "3", "xfqy_commercial_units": "10",
"xfqy_commercial_area": "2555.5500", "xfqy_commercial_area": "1733.9100",
"xfqy_office_units": "0", "xfqy_office_units": "24",
"xfqy_office_area": "0.0000", "xfqy_office_area": "1295.9500",
"xfqy_parking_units": "64", "xfqy_parking_units": "309",
"xfqy_parking_area": "2186.4200" "xfqy_parking_area": "12800.5700"
} }
}, },
"clfwsqytj": { "clfwsqytj": {
@ -109,10 +109,10 @@
"clf_month_residential_area": "721746.3800" "clf_month_residential_area": "721746.3800"
}, },
"clf_day": { "clf_day": {
"clf_day_total_units": "698", "clf_day_total_units": "1491",
"clf_day_total_area": "58367.3700", "clf_day_total_area": "124348.8300",
"clf_day_residential_units": "621", "clf_day_residential_units": "1422",
"clf_day_residential_area": "53321.1500" "clf_day_residential_area": "120703.0800"
} }
}, },
"clfwdtj": { "clfwdtj": {

View File

@ -1,20 +1,20 @@
{ {
"date": "2026-04-01", "date": "2026-04-02",
"timestamp": 1775038266689, "timestamp": 1775146177353,
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749", "source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": { "data": {
"spfsjtj": { "spfsjtj": {
"ksqf": { "ksqf": {
"kspf_total_units": "84864", "kspf_total_units": "81215",
"kspf_total_area": "7285656.6100", "kspf_total_area": "7083473.2800",
"kspf_residential_units": "38364", "kspf_residential_units": "37506",
"kspf_residential_area": "5302089.0400", "kspf_residential_area": "5222757.4100",
"kspf_commercial_units": "216", "kspf_commercial_units": "212",
"kspf_commercial_area": "160382.6300", "kspf_commercial_area": "156893.4400",
"kspf_office_units": "530", "kspf_office_units": "502",
"kspf_office_area": "515668.8300", "kspf_office_area": "493647.2500",
"kspf_parking_units": "37008", "kspf_parking_units": "34304",
"kspf_parking_area": "1016071.9000" "kspf_parking_area": "919809.3800"
}, },
"ysxk": { "ysxk": {
"ysxk_license_count": "8", "ysxk_license_count": "8",
@ -29,76 +29,76 @@
"ysxk_parking_area": "38546.2200" "ysxk_parking_area": "38546.2200"
}, },
"qfrg": { "qfrg": {
"qfrg_total_units": "200", "qfrg_total_units": "180",
"qfrg_total_area": "24313.8900", "qfrg_total_area": "19757.3300",
"qfrg_residential_units": "196", "qfrg_residential_units": "179",
"qfrg_residential_area": "24201.0500", "qfrg_residential_area": "19741.6700",
"qfrg_commercial_units": "0", "qfrg_commercial_units": "0",
"qfrg_commercial_area": "0.0000", "qfrg_commercial_area": "0.0000",
"qfrg_office_units": "0", "qfrg_office_units": "0",
"qfrg_office_area": "0.0000", "qfrg_office_area": "0.0000",
"qfrg_parking_units": "3", "qfrg_parking_units": "0",
"qfrg_parking_area": "85.9200" "qfrg_parking_area": "0.0000"
}, },
"qfqy": { "qfqy": {
"qfqy_total_units": "623", "qfqy_total_units": "177",
"qfqy_total_area": "39459.3900", "qfqy_total_area": "17461.4700",
"qfqy_residential_units": "262", "qfqy_residential_units": "164",
"qfqy_residential_area": "33077.5800", "qfqy_residential_area": "17259.4500",
"qfqy_commercial_units": "0", "qfqy_commercial_units": "0",
"qfqy_commercial_area": "0.0000", "qfqy_commercial_area": "0.0000",
"qfqy_office_units": "0", "qfqy_office_units": "0",
"qfqy_office_area": "0.0000", "qfqy_office_area": "0.0000",
"qfqy_parking_units": "331", "qfqy_parking_units": "11",
"qfqy_parking_area": "4606.3400" "qfqy_parking_area": "144.8500"
}, },
"wyxf": { "wyxf": {
"wyxf_total_units": "215281", "wyxf_total_units": "213020",
"wyxf_total_area": "11647704.7600", "wyxf_total_area": "11444682.6600",
"wyxf_residential_units": "30409", "wyxf_residential_units": "28232",
"wyxf_residential_area": "3535094.6500", "wyxf_residential_area": "3336511.0500",
"wyxf_commercial_units": "1749", "wyxf_commercial_units": "1747",
"wyxf_commercial_area": "887419.9300", "wyxf_commercial_area": "885773.0000",
"wyxf_office_units": "4421", "wyxf_office_units": "4421",
"wyxf_office_area": "1544345.5200", "wyxf_office_area": "1544345.5200",
"wyxf_parking_units": "125267", "wyxf_parking_units": "125200",
"wyxf_parking_area": "4176024.2400" "wyxf_parking_area": "4174128.6900"
}, },
"xfxm": { "xfxm": {
"xfxm_project_count": "39991", "xfxm_project_count": "39991",
"xfxm_total_area": "280021433.3800", "xfxm_total_area": "280021433.3800",
"xfxm_residential_units": "939147", "xfxm_residential_units": "939146",
"xfxm_residential_area": "117061203.6200", "xfxm_residential_area": "117061190.9900",
"xfxm_commercial_units": "96954", "xfxm_commercial_units": "96954",
"xfxm_commercial_area": "23177798.2500", "xfxm_commercial_area": "23177798.2500",
"xfxm_office_units": "134737", "xfxm_office_units": "134752",
"xfxm_office_area": "25167504.6100", "xfxm_office_area": "25171559.5900",
"xfxm_parking_units": "831295", "xfxm_parking_units": "831296",
"xfxm_parking_area": "31680313.3700" "xfxm_parking_area": "31680326.0000"
}, },
"xfrg": { "xfrg": {
"xfrg_total_units": "60", "xfrg_total_units": "49",
"xfrg_total_area": "7344.6900", "xfrg_total_area": "5078.7000",
"xfrg_residential_units": "53", "xfrg_residential_units": "45",
"xfrg_residential_area": "7138.1800", "xfrg_residential_area": "4931.8700",
"xfrg_commercial_units": "0", "xfrg_commercial_units": "0",
"xfrg_commercial_area": "0.0000", "xfrg_commercial_area": "0.0000",
"xfrg_office_units": "0", "xfrg_office_units": "0",
"xfrg_office_area": "0.0000", "xfrg_office_area": "0.0000",
"xfrg_parking_units": "4", "xfrg_parking_units": "1",
"xfrg_parking_area": "147.0400" "xfrg_parking_area": "39.4400"
}, },
"xfqy": { "xfqy": {
"xfqy_total_units": "528", "xfqy_total_units": "2326",
"xfqy_total_area": "85229.2000", "xfqy_total_area": "207574.3500",
"xfqy_residential_units": "140", "xfqy_residential_units": "2211",
"xfqy_residential_area": "15335.2300", "xfqy_residential_area": "201808.5600",
"xfqy_commercial_units": "10", "xfqy_commercial_units": "2",
"xfqy_commercial_area": "1733.9100", "xfqy_commercial_area": "1646.9300",
"xfqy_office_units": "24", "xfqy_office_units": "0",
"xfqy_office_area": "1295.9500", "xfqy_office_area": "0.0000",
"xfqy_parking_units": "309", "xfqy_parking_units": "86",
"xfqy_parking_area": "12800.5700" "xfqy_parking_area": "2944.4400"
} }
}, },
"clfwsqytj": { "clfwsqytj": {
@ -109,10 +109,10 @@
"clf_month_residential_area": "721746.3800" "clf_month_residential_area": "721746.3800"
}, },
"clf_day": { "clf_day": {
"clf_day_total_units": "1491", "clf_day_total_units": "615",
"clf_day_total_area": "124348.8300", "clf_day_total_area": "54330.0800",
"clf_day_residential_units": "1422", "clf_day_residential_units": "543",
"clf_day_residential_area": "120703.0800" "clf_day_residential_area": "49707.4800"
} }
}, },
"clfwdtj": { "clfwdtj": {

View File

@ -1,20 +1,20 @@
{ {
"date": "2026-04-02", "date": "2026-04-03",
"timestamp": 1775146177353, "timestamp": 1775212025291,
"source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749", "source": "http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749",
"data": { "data": {
"spfsjtj": { "spfsjtj": {
"ksqf": { "ksqf": {
"kspf_total_units": "81215", "kspf_total_units": "80345",
"kspf_total_area": "7083473.2800", "kspf_total_area": "6996273.6900",
"kspf_residential_units": "37506", "kspf_residential_units": "37208",
"kspf_residential_area": "5222757.4100", "kspf_residential_area": "5166395.9800",
"kspf_commercial_units": "212", "kspf_commercial_units": "212",
"kspf_commercial_area": "156893.4400", "kspf_commercial_area": "156893.4400",
"kspf_office_units": "502", "kspf_office_units": "502",
"kspf_office_area": "493647.2500", "kspf_office_area": "493647.2500",
"kspf_parking_units": "34304", "kspf_parking_units": "33805",
"kspf_parking_area": "919809.3800" "kspf_parking_area": "896549.1900"
}, },
"ysxk": { "ysxk": {
"ysxk_license_count": "8", "ysxk_license_count": "8",
@ -29,76 +29,76 @@
"ysxk_parking_area": "38546.2200" "ysxk_parking_area": "38546.2200"
}, },
"qfrg": { "qfrg": {
"qfrg_total_units": "180", "qfrg_total_units": "281",
"qfrg_total_area": "19757.3300", "qfrg_total_area": "36336.5400",
"qfrg_residential_units": "179", "qfrg_residential_units": "280",
"qfrg_residential_area": "19741.6700", "qfrg_residential_area": "36322.7900",
"qfrg_commercial_units": "0", "qfrg_commercial_units": "0",
"qfrg_commercial_area": "0.0000", "qfrg_commercial_area": "0.0000",
"qfrg_office_units": "0", "qfrg_office_units": "0",
"qfrg_office_area": "0.0000", "qfrg_office_area": "0.0000",
"qfrg_parking_units": "0", "qfrg_parking_units": "1",
"qfrg_parking_area": "0.0000" "qfrg_parking_area": "13.7500"
}, },
"qfqy": { "qfqy": {
"qfqy_total_units": "177", "qfqy_total_units": "167",
"qfqy_total_area": "17461.4700", "qfqy_total_area": "16116.8900",
"qfqy_residential_units": "164", "qfqy_residential_units": "141",
"qfqy_residential_area": "17259.4500", "qfqy_residential_area": "15499.0700",
"qfqy_commercial_units": "0", "qfqy_commercial_units": "0",
"qfqy_commercial_area": "0.0000", "qfqy_commercial_area": "0.0000",
"qfqy_office_units": "0", "qfqy_office_units": "0",
"qfqy_office_area": "0.0000", "qfqy_office_area": "0.0000",
"qfqy_parking_units": "11", "qfqy_parking_units": "24",
"qfqy_parking_area": "144.8500" "qfqy_parking_area": "505.2100"
}, },
"wyxf": { "wyxf": {
"wyxf_total_units": "213020", "wyxf_total_units": "213286",
"wyxf_total_area": "11444682.6600", "wyxf_total_area": "11448472.2700",
"wyxf_residential_units": "28232", "wyxf_residential_units": "28197",
"wyxf_residential_area": "3336511.0500", "wyxf_residential_area": "3331600.8200",
"wyxf_commercial_units": "1747", "wyxf_commercial_units": "1745",
"wyxf_commercial_area": "885773.0000", "wyxf_commercial_area": "883799.8500",
"wyxf_office_units": "4421", "wyxf_office_units": "4421",
"wyxf_office_area": "1544345.5200", "wyxf_office_area": "1544345.5200",
"wyxf_parking_units": "125200", "wyxf_parking_units": "125515",
"wyxf_parking_area": "4174128.6900" "wyxf_parking_area": "4185111.6500"
}, },
"xfxm": { "xfxm": {
"xfxm_project_count": "39991", "xfxm_project_count": "39994",
"xfxm_total_area": "280021433.3800", "xfxm_total_area": "280033839.0200",
"xfxm_residential_units": "939146", "xfxm_residential_units": "939137",
"xfxm_residential_area": "117061190.9900", "xfxm_residential_area": "117058970.5000",
"xfxm_commercial_units": "96954", "xfxm_commercial_units": "96948",
"xfxm_commercial_area": "23177798.2500", "xfxm_commercial_area": "23175953.6100",
"xfxm_office_units": "134752", "xfxm_office_units": "134744",
"xfxm_office_area": "25171559.5900", "xfxm_office_area": "25165391.1700",
"xfxm_parking_units": "831296", "xfxm_parking_units": "831653",
"xfxm_parking_area": "31680326.0000" "xfxm_parking_area": "31692731.6400"
}, },
"xfrg": { "xfrg": {
"xfrg_total_units": "49", "xfrg_total_units": "44",
"xfrg_total_area": "5078.7000", "xfrg_total_area": "5222.1600",
"xfrg_residential_units": "45", "xfrg_residential_units": "40",
"xfrg_residential_area": "4931.8700", "xfrg_residential_area": "5143.6100",
"xfrg_commercial_units": "0", "xfrg_commercial_units": "0",
"xfrg_commercial_area": "0.0000", "xfrg_commercial_area": "0.0000",
"xfrg_office_units": "0", "xfrg_office_units": "0",
"xfrg_office_area": "0.0000", "xfrg_office_area": "0.0000",
"xfrg_parking_units": "1", "xfrg_parking_units": "3",
"xfrg_parking_area": "39.4400" "xfrg_parking_area": "59.0200"
}, },
"xfqy": { "xfqy": {
"xfqy_total_units": "2326", "xfqy_total_units": "130",
"xfqy_total_area": "207574.3500", "xfqy_total_area": "10809.6000",
"xfqy_residential_units": "2211", "xfqy_residential_units": "43",
"xfqy_residential_area": "201808.5600", "xfqy_residential_area": "5663.2000",
"xfqy_commercial_units": "2", "xfqy_commercial_units": "3",
"xfqy_commercial_area": "1646.9300", "xfqy_commercial_area": "2555.5500",
"xfqy_office_units": "0", "xfqy_office_units": "0",
"xfqy_office_area": "0.0000", "xfqy_office_area": "0.0000",
"xfqy_parking_units": "86", "xfqy_parking_units": "64",
"xfqy_parking_area": "2944.4400" "xfqy_parking_area": "2186.4200"
} }
}, },
"clfwsqytj": { "clfwsqytj": {
@ -109,10 +109,10 @@
"clf_month_residential_area": "721746.3800" "clf_month_residential_area": "721746.3800"
}, },
"clf_day": { "clf_day": {
"clf_day_total_units": "615", "clf_day_total_units": "698",
"clf_day_total_area": "54330.0800", "clf_day_total_area": "58367.3700",
"clf_day_residential_units": "543", "clf_day_residential_units": "621",
"clf_day_residential_area": "49707.4800" "clf_day_residential_area": "53321.1500"
} }
}, },
"clfwdtj": { "clfwdtj": {

BIN
pic/2026-03-18.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

View File

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 374 KiB

View File

Before

Width:  |  Height:  |  Size: 375 KiB

After

Width:  |  Height:  |  Size: 375 KiB

BIN
pic/2026-03-31.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

View File

Before

Width:  |  Height:  |  Size: 416 KiB

After

Width:  |  Height:  |  Size: 416 KiB

View File

@ -14,22 +14,31 @@ const DATA_DIR = path.join(BASE_DIR, 'data');
const TARGET_URL = 'http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749'; const TARGET_URL = 'http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749';
// 获取当前日期 function formatDate(date) {
function getToday() { const year = date.getFullYear();
return new Date().toISOString().split('T')[0]; const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
// 口径调整:当天执行时,落地前一天的数据
function getDataDate() {
const date = new Date();
date.setDate(date.getDate() - 1);
return formatDate(date);
} }
// 主函数 // 主函数
async function main() { async function main() {
const today = getToday(); const dataDate = getDataDate();
console.log('=========================================='); console.log('==========================================');
console.log(`开始爬取: ${today}`); console.log(`开始爬取(落地日期): ${dataDate}`);
console.log(`目标URL: ${TARGET_URL}`); console.log(`目标URL: ${TARGET_URL}`);
console.log('==========================================\n'); console.log('==========================================\n');
const picPath = path.join(PIC_DIR, `${today}.png`); const picPath = path.join(PIC_DIR, `${dataDate}.png`);
const dataPath = path.join(DATA_DIR, `${today}.json`); const dataPath = path.join(DATA_DIR, `${dataDate}.json`);
// 确保输出目录存在 // 确保输出目录存在
if (!fs.existsSync(PIC_DIR)) { if (!fs.existsSync(PIC_DIR)) {
@ -89,7 +98,7 @@ async function main() {
console.log(' ✓ 数据已提取'); console.log(' ✓ 数据已提取');
const content = JSON.stringify({ const content = JSON.stringify({
date: today, date: dataDate,
timestamp: Date.now(), timestamp: Date.now(),
source: TARGET_URL, source: TARGET_URL,
data: JSON.parse(data) data: JSON.parse(data)
@ -107,7 +116,7 @@ async function main() {
} }
console.log('\n=========================================='); console.log('\n==========================================');
console.log(`爬取完成: ${today}`); console.log(`爬取完成(落地日期): ${dataDate}`);
console.log(`截图文件: ${picPath}`); console.log(`截图文件: ${picPath}`);
console.log(`数据文件: ${dataPath}`); console.log(`数据文件: ${dataPath}`);
console.log('=========================================='); console.log('==========================================');

View File

@ -11,9 +11,18 @@ const PIC_DIR = path.join(BASE_DIR, 'pic');
const TARGET_URL = 'http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749'; const TARGET_URL = 'http://bjjs.zjw.beijing.gov.cn/eportal/ui?pageId=307749';
// 获取当前日期 function formatDate(date) {
function getToday() { const year = date.getFullYear();
return new Date().toISOString().split('T')[0]; const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
// 口径调整:当天执行时,落地图按前一天日期命名
function getDataDate() {
const date = new Date();
date.setDate(date.getDate() - 1);
return formatDate(date);
} }
async function screenshot(url, outputPath) { async function screenshot(url, outputPath) {
@ -71,4 +80,4 @@ async function screenshot(url, outputPath) {
} }
// 主程序 // 主程序
screenshot(TARGET_URL, path.join(PIC_DIR, `${getToday()}.png`)); screenshot(TARGET_URL, path.join(PIC_DIR, `${getDataDate()}.png`));