IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python获取全国区划代码名称及中心经纬度 -> 正文阅读

[Python知识库]Python获取全国区划代码名称及中心经纬度

Python获取全国区划代码名称及中心经纬度

代码

import requests
from bs4 import BeautifulSoup as BS


# 百度API密钥,免费额度6000次,全国区划3000+足够用
ak = "****"


# 根据区划名称获取经纬度信息
def get_location_by_region_name(region_name):
    url = f"https://api.map.baidu.com/geocoding/v3/?address={region_name}&output=json&ak={ak}"
    content = requests.get(url).json()
    try:
        location = content["result"]["location"]
        lon, lat = location["lng"], location["lat"]
        return (lon, lat)
    except:
        print(f"{region_name}获取位置出错!")
        return None


# 获取全国省市区划编码
def get_all_region_codes():
    url = "http://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html"
    content = requests.get(url).text
    bs = BS(content, "lxml")
    
    table = bs.find("table")
    region_list = list()
    for tr in table.find_all("tr"):
        tds = tr.find_all("td")
        
        if len(tds)<3 or tds[1].text == "":
            continue
            
        code, name = tds[1].text.strip(), tds[2].text.strip()
        if code == "行政区划代码":
            continue
        elif code.endswith("0000"):
            level = "省"
        elif code.endswith("00"):
            level = "市"
        else:
            level = "区"
            
        region_list.append((level,code,name))
        
    return region_list
    
    
if __name__ == "__main__":
    file_path = "region.csv"
    
    with open(file_path, 'w') as f:
        f.write("区划级别,区划编码,区划名称,经度,纬度\n")
        for (level,code,name) in get_all_region_codes():
            location = get_location_by_region_name(name)
            if not location:
                lon, lat = "",""
            else:
                lon, lat = location
            line = f"{level},{code},{name},{lon},{lat}"
            print(f"{level},{code},{name},{lon},{lat}")
            f.write(line+"\n")
        
    print(f"全国区划经纬度信息写入{file_path}完成!")

数据

image-20210824233849678

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:09:51  更:2021-08-25 12:11:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 13:45:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计