本文通过调取高德行政区划查询接口,获取最新的数据信息(省、市、区、经纬度、行政级别、城市编码、行政编码等),并通过mysql.connector存入mysql数据库

表结构设计如下:

CREATE TABLE `districts` (`districtId` int(11) NOT NULL AUTO_INCREMENT,`districtPid` int(11) DEFAULT NULL COMMENT '上级ID',`name` varchar(32) DEFAULT NULL COMMENT '行政区名称',`citycode` varchar(6) DEFAULT NULL COMMENT '城市编码',`adcode` varchar(6) DEFAULT NULL COMMENT '城市区域编码',`lng` float(13,10) DEFAULT NULL COMMENT '经度',`lat` float(13,10) DEFAULT NULL COMMENT '纬度',`level` varchar(10) DEFAULT NULL COMMENT '行政区划级别',`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,`updateTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`districtId`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4

结果如下:

python代码如下:(需替换成自己的数据库地址帐号密码、及换入自己的高德key值)

# coding = utf-8
"""
@autor: linuxdba
"""
import json
import mysql.connector
import requestsheader = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36'
}mydb = mysql.connector.connect(host='ip.....', user='username.....', password='pwd.....', port=3306,database='test')
mycursor = mydb.cursor()insert_sql = "INSERT INTO `districts` ( `districtpid`,`name`, `adcode`, `lng`, `lat`, `level`) VALUES (%s,%s, %s, %s, %s, %s);"
insert_city_sql = "INSERT INTO `districts` ( `districtpid`,`name`, `citycode`,`adcode`, `lng`, `lat`, `level`) VALUES (%s, %s, %s, %s, %s, %s, %s);"select_sql = 'select districtId from districts where adcode = %s'def updatedb(sql, *args):try:mycursor.execute(sql, args)mydb.commit()except Exception as e:print(e)def selectdb(sql, *args):mycursor.execute(sql, args)return mycursorupdatedb(insert_sql, 0, '中华人民共和国', '100000', '116.3683244', '39.915085', 'country')
provinces = ['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', '浙江省', '安徽省', '福建省', '江西省','山东省', '河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省','青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省', '香港特别行政区', '澳门特别行政区']
for i in provinces:code_url = 'https://restapi.amap.com/v3/config/district?key=d6efa016ea883e15a0782f939d6a805e&keywords={}&subdistrict=2'.format(i)res = requests.get(code_url, headers=header)print(code_url)print(res.text)province = json.loads(res.text)['districts']adcode = province[0]['adcode']pname = province[0]['name']center = province[0]['center']pcitycode = province[0]['citycode']level = province[0]['level']lng = province[0]['center'].split(',')[0]lat = province[0]['center'].split(',')[1]city_list = province[0]['districts']# print(pname, pcitycode, adcode, lng, lat, level)updatedb(insert_sql, 1, pname, adcode, lng, lat, level)districtpid = selectdb(select_sql, adcode).fetchone()[0]# print(city_list)for city in city_list:citycode = city['citycode']adcode = city['adcode']name = city['name']level = city['level']lng = city['center'].split(',')[0]lat = city['center'].split(',')[1]district_list = city['districts']# print(name, citycode, adcode, lng, lat, level)updatedb(insert_city_sql, districtpid, name, citycode, adcode, lng, lat, level)citypid = selectdb(select_sql, adcode).fetchone()[0]for district in district_list:citycode = district['citycode']adcode = district['adcode']name = district['name']level = district['level']lng = district['center'].split(',')[0]lat = district['center'].split(',')[1]district_list = district['districts']if level in ['district']:updatedb(insert_city_sql, citypid, name, citycode, adcode, lng, lat, level)print(name, citycode, adcode, lng, lat, level)

表数据文件链接:

http://linuxdba.ltd/files/districts.sql

python 爬取全国最新省市区数据,并存入表相关推荐

  1. python爬取全国天气数据

    可以实现爬取全国的天气数据,存储为csv文件 数据来源为http://m.tianqi.com 需要requests, bs4, pandas, lxml库 对应的安装命令 pip install r ...

  2. 利用Python爬取全国250m精度的人口数据

    此次以GeoQ(智图)为基础,利用Python爬取全国250m精度的人口数据(GeoQ)这个网站开放过250m精度的人口分布数据,而且人口分布有年龄分段等属性.先得注册登录到达创建地图的界面. 看人口 ...

  3. 利用Python爬取全国250m精度的人口数据(GeoQ)、房价数据和公交站(线路)等数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 中原百科 GIS大师兄 PS:如有需要Python学习资料的小伙伴可 ...

  4. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  5. selenium + bs4 +requests 爬取全国电动汽车充电站数据

    0.说明 本文章仅用于python爬虫的学习,爬取到的数据仅用于学习.竞赛等非营利活动,如有侵权请及时联系. 1.简单介绍 我们在爬虫时,往往都是静态界面,或者没有嵌套的的界面,直接使用request ...

  6. Python爬取全国地铁站点、地铁线路和发车时刻

    爬取全国地铁站点.地铁线路和发车时刻的方法. 一.两种爬取方法概述  (一)html页面爬取    1. 为了收集全国地铁线路的发车时刻信息,刚开始尝试的方法如下: (1)找到每个城市的地铁官网,如& ...

  7. python实战|python爬取58同城租房数据并以Excel文件格式保存到本地

    python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...

  8. Python爬取京东任意商品数据实战总结

    利用Python爬取京东任意商品数据 今天给大家展示爬取京东商品数据 首先呢还是要分思路的,我分为以下几个步骤: 第一步:得到搜索指定商的url 第二步:获得搜索商品列表信息 第三步:对得到的商品数据 ...

  9. python 爬取24小时天气数据

    python 爬取24小时天气数据 1.引入相关库 # -*- coding: utf-8 -*- import requests import numpy as np 关于爬虫,就是在网页上找到自己 ...

  10. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

最新文章

  1. linux下socket连接下的心跳机制
  2. .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
  3. 真香!8 行代码搞定最大子数组和问题
  4. 【Java】异常处理的注意事项
  5. python中bs4库_python系统学习2——beautiful soup库(bs4库)学习
  6. 欢迎广大技术爱好者参与JEECG开源项目
  7. 数字滤波器(二)--最小相位延时系统和全通系统
  8. linux监控指定用户操作,Linux 用户行为轨迹监控
  9. 2021年吉林高考成绩怎么查询,2021年吉林高考成绩查询登录网址入口怎么查 附查询方法...
  10. 从零开始学前端:列表标签 --- 今天你学习了吗?(CSS:Day06)
  11. 我的第一本算法书(图解算法)——什么是堆
  12. 拼团商城小程序高保真原型模板、支付、优惠券、客服、物流、收藏、足迹、优惠券、订单管理、评价、设置、地址、售后、拼团、消息通知、商城小程序、电商小程序、拼团电商、移动端电商、高保真电商、电商app
  13. JavaScript知识点之:delete操作符
  14. Jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则表达式提取器转载...
  15. python基础知识01-数据类型和序列类型
  16. php读取西门子plc_第三方设备如何读取PLC数据
  17. AutoCAD2012从入门到精通中文视频教程 第14课 综合实例(个人收藏)
  18. c语言程序用if循环,if语句的用法循环语句
  19. 蓝色音箱改装电源_创新便携/无线音箱排行榜,创新便携/无线音箱十大排名推荐...
  20. 2018软科计算机科学工程排行,2018全球计算机与工程学科排名:清华第7,中国9个学科世界第一!...

热门文章

  1. 解读基于数加的大数据仓库解决方案
  2. 智能网联汽车仿真测试软件,智能网联汽车测试评价及检测认证
  3. 【IT项目管理】第5章 习题
  4. cadence17.2制作封装过程
  5. 超分辨率重构之SRCNN整理总结(七)
  6. log日志查看软件logviewer-pro
  7. Anaconda卸载与安装
  8. 给予树莓派的linux登陆密码,新手教程:如何 SSH 进入树莓派
  9. 公差带与配合 配合选择基础
  10. 数据库课程设计:图书借阅管理系统(控制台交互)