最近又在研究python,于是对全国的城市地图数据下手了,废话不多说,下面直接贴代码:
注释都有应该能看懂

import requests
import json
import os# 所有地域的请求地址
ALL_AREA_URL = "http://geo.datav.aliyun.com/areas_v3/bound/all.json"
# 包含子域的json请求地址
ARREA_BOUND_URL = "http://geo.datav.aliyun.com/areas_v3/bound/geojson"
# 数据存储位置
FOLDER_PATH = "D:\\areaBound\\";
headers = {'content-type': 'charset=utf-8'}allLen_g = 0
pullSize_g = 0;
fail_g = []def getAllArea():"""获取全国的所有地域:return: 返回元组"""res = requests.get(url=ALL_AREA_URL, headers=headers)allArea = json.loads(res.text)global allLen_gallLen_g = len(allArea)root = Nonecodemap = {}for area in allArea:code = area["adcode"]name = area['name']parent = area["parent"]current = {'code': code, 'name': name, "children": []}codemap[code] = currentif parent is not None:codemap[parent]['children'].append(current)else:root = currentreturn rootdef getBoundData(areacode, full=False):if full:params = {"code": str(areacode) + "_full"}else:params = {"code": str(areacode)}res = requests.get(url=ARREA_BOUND_URL, params=params)return res.textdef load2file(area, folder, fail):code = area['code']name = area['name']if not os.path.exists(folder):os.makedirs(folder)has_fail = Falseglobal pullSize_gpullSize_g += 1# 无子区域try:filepath = folder + name + ".json"if not os.path.exists(filepath):res = getBoundData(code)with open(folder + name + ".json", "w") as f:f.write(res)except BaseException as e:print("pull [%s] fail!!!!" % name)print(e)has_fail = True# 包含子区域try:filepath = folder + name + "_full.json"if not os.path.exists(filepath):res = getBoundData(code, True)with open(folder + name + "_full.json", 'w') as f:f.write(res)except BaseException as e:print("pull [%s]_full fail!!!!" % name)print(e)has_fail = Trueif has_fail:fail.append(area)print("pull [%s] success~~~ >>> %.2f" % (name, pullSize_g / allLen_g))# 递归加载子区域folder = folder + area['name'] + "\\"for child in area['children']:load2file(child, folder, fail)# 加载所有的地区
root = getAllArea()
folder = "D:\\qgdt\\"
if not os.path.exists(folder):os.makedirs(folder)
with open(folder+"qyhf.json",'w') as f:f.write(json.dumps(root,ensure_ascii=False))
load2file(root, "D:\\qgdt\\", fail_g)

附带爬取结果:
链接:https://pan.baidu.com/s/1taQPcS2x2rWF2H1yklVd-w
提取码:mlyu

全国城市数据及地图数据-python爬取相关推荐

  1. python 怎么爬桌软件数据_如何利用Python爬取并分析红岭创投的数据?

    第一步:爬取数据 通过 selenium + Firefox 的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(如何利用Python爬取网易新闻), 由于 seleniu ...

  2. python爬取网页公开数据_如何用Python爬取网页数据

    使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...

  3. python能爬取网站后台数据_如何利用Python爬取网站数据?

    1.基本方法 其实用python爬取网页很简单,只有简单的几句话 这样就可以获得到页面的内容.接下来再用正则匹配去匹配所需要的内容就行了.但是,真正要做起来,就会有各种各样的细节问题. 2.登录 这是 ...

  4. python爬取bilibili数据_如何使用Python爬取bilibili视频(详细教程)

    Python爬取bilibili视频 摘要 为了解决PC端的bilibili无法下载视频的问题,使用python语言可以实现一个能够爬取bilibili某个视频资源(不包括会员视频)的程序.采用整个视 ...

  5. python爬取b站数据_如果利用Python爬取B站上千万数据?B站直播都是大屌萌妹吗?...

    粉丝独白 说起热门的B站相信很多喜欢玩动漫的,看最有创意的Up主的同学一定非常熟悉.我突发奇想学Python这么久了,为啥不用Python爬取B站中我关注的人,已经关注的人他们关注的人,看看全站里面热 ...

  6. 如何用python爬取数据_如何使用python爬取知乎数据并做简单分析

    原标题:如何使用python爬取知乎数据并做简单分析 一.使用的技术栈: 爬虫:python27 +requests+json+bs4+time 分析工具: ELK套件 开发工具:pycharm 数据 ...

  7. python爬取地图数据_高德3地图之python爬取POI数据及其边界经纬度(根据关键字在城市范围内搜索)...

    目前高德的边界没法批量爬取,不过可以采用百度地图的接口来替代,目前用着还可以,参见这里: 为了方便大家,不用再为安装环境,以及运行报错等问题困扰,目前已经将POI数据爬取做成一个在线公开的数工具,地址 ...

  8. 租房子,光看数据怎么够,Python爬取某站租房图片

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于csdn,作者 王延领 对于一个net开发者爬虫真真的以前没 ...

  9. python获取币安k线数据_如何利用Python 爬取币乎的数据

    1LSGO软件技术团队 贡献人:李金原 如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习. If you like the content here, the gre ...

  10. python爬取网页数据流程_基于Python爬取fofa网页端数据过程解析

    FOFA-网络空间安全搜索引擎是网络空间资产检索系统(FOFA)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息.探索全球互联网的资产信息,进行资产及漏洞影响范围分析.应 ...

最新文章

  1. Java程序员面试如何超常发挥?
  2. SQLite第八课 auth.c授权文件解析
  3. 干粉灭火器的维护保养
  4. 拼装sql_SQL优化最干货总结(2020最新版)
  5. 【深度学习】——物体检测的难点
  6. 结对编程项目的过程记录与收获
  7. linux 磁盘被挂载2个目录,Linux检测并挂载第二块硬盘的步骤
  8. Swift - 05 - 数值型字面量
  9. DSTE经营分析会(战略落地的核心抓手)
  10. ipv4 pxe 联想start_电脑开不了机提示start pxe over ipv4的解决方法
  11. ValueError: 2 columns passed, passed data had 5 columns
  12. App项目实战之路(三):原型篇
  13. 锐龙R3 2200G和Intel i3-8100选哪个好
  14. 查找计算机里包含相关文字,windows7如何搜索包含关键字的文件_win7电脑文件怎么查关键字文件...
  15. 预告|2022 星策 Summit 企业数智化转型论坛议程公布!
  16. 用gif图展示UML中箭头和线条的含义,及搞懂UML类图、时序图和用例图
  17. linux系统启动的第一个进程是,CentOS6开机启动过程详解
  18. 微信小程序场景值列表map格式
  19. (一)文字和语言、数字和信息(从进化史看自然语言)
  20. 创纪录15支球队参与 3大球星领衔NBA新春贺岁

热门文章

  1. sql server如何删除表中重复数据
  2. 目标检测算法——YOLOv5/YOLOv7改进之结合CBAM注意力机制
  3. 使用IDEA将git分支中的内容合并到master主分支
  4. 【昇腾310】【mindspore 安装后测试报错】ImportError: libacl_tdt_channel.so
  5. 在MATLAB 中st_1是变量名,在Delphi中,根据变量标识符命名规则,st80不能用一个变量命名。...
  6. 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识
  7. pdf怎么转换成word免费?就有这几个方法!
  8. 从无到有跑通KAPAO
  9. 运放后的电压信号,校准方法
  10. ADB安卓调试桥接工具