node.js 爬取腾讯地图API全国行政区数据
生活随笔
收集整理的這篇文章主要介紹了
node.js 爬取腾讯地图API全国行政区数据
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
使用 vue + element cascader級(jí)聯(lián)選擇器做城市選擇器(可查看另一篇文章),需要全國行政區(qū)數(shù)據(jù)。
github地址:https://github.com/username-xu/node.js-districts
const fs = require('fs')// 請(qǐng)求模塊,文檔可參考:https://www.jianshu.com/p/1432e0f29abd const superagent = require('superagent')const main = () => {getAllDistrict(); }// 獲取全部數(shù)據(jù) const getAllDistrict = async () => {let list = [];// 接口地址: https://lbs.qq.com/webservice_v1/guide-region.html// key值,需要注冊(cè)騰訊地圖賬號(hào)(https://lbs.qq.com/index.html)獲取const url = 'https://apis.map.qq.com/ws/district/v1/list?key=****';try{list = (await superagent.get(url)).body.result;} catch(err) {console.log(err)}getSheng(list); }// 獲取省級(jí)數(shù)據(jù) const getSheng = list => {let data = [];list[0].forEach((v) => {let shengItem = {value: v.id,label: v.fullname,children: []}data.push(getShi(list, shengItem));});output(data); }// 獲取市級(jí)數(shù)據(jù) const getShi = (list, shengItem) => {list[1].forEach((v) => {let shengSign = shengItem.value.slice(0, 2);let shiSign = v.id.slice(0, 2);if(shengSign === shiSign){let shiItem = {value: v.id,label: v.fullname,children: []}shengItem.children.push(getQu(list, shiItem));}});return shengItem; }// 獲取區(qū)級(jí)數(shù)據(jù) const getQu = (list, shiItem) => {list[2].forEach((v) => {let shiSign = shiItem.value.slice(0, 4);let qusign = v.id.slice(0, 4);if(shiSign === qusign){shiItem.children.push({value: v.id,label: v.fullname});}});// 若市級(jí)下沒有區(qū),刪除 childrenif(!shiItem.children.length){delete shiItem.children;}return shiItem; }// 輸出 const output = data => {let dataStr = JSON.stringify(data);fs.writeFileSync('cities.js',dataStr,function(err){if(err){console.log('輸出失敗')}}) }main();?
總結(jié)
以上是生活随笔為你收集整理的node.js 爬取腾讯地图API全国行政区数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python四大金刚之四:集合
- 下一篇: c语言两个字符串比较,将两个字符串s1和