国家省市区街道 API 接口

在 京东商城 商品详情页 找到了一个 省市区街道 API 接口, 这是一个没有跨域问题 JSONP用的接口,
如果我们不传 callback 就可以直接使用。

接口放在下面

例如查国家:
https://fts.jd.com/area/get?fid=-1

fid=-1 为国家,查其它可以将fid 为 接口 返回的id,进行下级查询。


如果想爬取下来所有 中国的省市区 信息,可以可运行下面的 NodeJS 代码

const axios = require('axios')
const fs = require('fs')

const sleep = async ms => new Promise(resolve => setTimeout(resolve, ms))

async function getArea(fid = -1) {
  const { data } = await axios.get(`https://fts.jd.com/area/get?fid=${fid}`)
  return data
}

async function makePlainArea(plain = [], fid = 4744) {
  await sleep(500 + Math.random() * 500)
  let areas = await getArea(fid)
  // areas = areas.slice(0, 3) // 测试
  if (!areas.length) {
    return
  }
  for (let area of areas) {
    area.pid = fid
    plain.push(area)
    console.log('即将获取:' + area.name)
    await makePlainArea(plain, area.id)
  }
}

async function main() {
  const plain = []
  await makePlainArea(plain, 4744)
  fs.writeFileSync('./plain-area.json', JSON.stringify(plain))
  console.log('生成完毕')
}

main().catch(console.log)

将 扁平的 数据 转 树结构 参考:

JS 将扁平后的数据 恢复成 树结构

posted @ 2021-07-03 09:47  暗恋桃埖源  阅读(2265)  评论(1编辑  收藏  举报