nodejs部分主要负责本项目的数据校验与地图生成。
该接口能搜索获得开发商数据(尽管有点瑕疵):https://fang.com/quanwangso/ajax/search.html?keyword=恒大&cityname=上海&num=1000
另外该网站还可基于楼盘搜索到开发商,这需要写一整套爬虫流程,感兴趣的朋友可以实现一下,属于 TODO 中的 B001
需求。
该接口由 richardo876 提供,具体见:#814 建议新增分开发商数据,给开放商压力,让购房者注意规避
genProperties.ts 可以从 README.md文档 中解析出 树状的 停贷数据并存储,这相对于原先的 analyze.ts 脚本来说有诸多好处。
首先,原先的 analyze.ts
脚本没有输出任何的中间结构,尽管它也基于局部组合实现了对省份的拼音排序,但是由于其没有构建树状结构,而是线性结构,导致其无法实现任意级别的序列重组。而 genProperties.ts
则吸收了 analyze.ts
中的所有精华设计部分,并专注于输出树状结构,对于 markdown
重写等功能则留给其他脚本接续完成。
用法:
ts-node genProperties.ts
输出位置: properties-tree.json。
genMarkdown.ts
可以对 properties-tree.json
结构树的基础上,进行自由重组,然后重新生成markdown文件,并且支持与原有的 README.md
进行无缝拼接(-j
参数),从而生成一份新的 README.md
文件。
用法:
ts-node genMarkdown.ts -h # 查看使用说明
# 默认按拼音增序进行三级排序(一直排到项目级别)(排头兵:安徽-合肥-恒大……),并输出到`README-by-lines.md`文件(纯省份文件)
ts-node genMarkdown.ts
# 按数量减序进行二级排序(一直排到城市级别)(排头兵:河南-郑州),并输出到`README-by-lines.md`文件
ts-node genMarkdown.ts -b count -d 2
# 修改输出文件地址,:waring: 注意,如果修改为本工程的 README.md 文档,将直接覆盖!
ts-node genMarkdown.ts -t /tmp/README.md
# 与 readme 文档合并输出完整的 README 文档
ts-node genMarkdown.ts -j
由此可知,我们只需要使用 ts-node genMarkdown.ts -j -t ../../README.md
即可以直接实现覆写 README
的效果,但是请注意,这样的操作是不可逆的,所以必要时要记得备份。
validateLocalImages.ts 可以对 images 目录下的文件的在 README.md文档 内的引用进行核验,以确保没有游离的文件。
用法:
ts-node validateLocalImages.ts
genCities.ts 脚本负责解析 基于楼盘的结构化数据文件 ,提供含有经纬度、楼盘合计的基于城市的结构化停贷数据文件,可供于可视化。该脚本已写入 CI,由 WeihanLi 维护。
用法:
ts-node genCities.ts
genMap.ts 脚本负责解析 基于城市的结构化停贷数据文件 ,对接Google Static Map API,生成基于城市的全国停贷地图:基于城市的全国停贷地图(标准主题) 、基于城市的全国停贷地图(淡色主题) 、基于城市的全国停贷地图(暗色主题)。该脚本已写入 CI,由 WeihanLi 维护。
用法:
ts-node src/genMap.ts # generate standard
ts-node src/genMap.ts -t light # generate light from under google theme config directory
ts-node src/genMap.ts -t dark # generate dark from under google theme config directory
ts-node src/genMap.ts -t all # generate all maps from under google theme config directory