【宝藏分享】一键获取中国省市区县列表,告别付费下载

一、宝藏分享

今天来给大家安利一个超级实用的小技巧,再也不用为了获取中国省市区县列表而头疼啦!

二、发现新大陆

神奇网站,它竟然可以免费获取我们急需的省市区县列表!
网站地址
但是需要注意的是,可能因为网络原因,有时候访问会有一点点困难,建议大家检查一下链接的合法性,或者稍后再试。

三、如何操作

操作起来也是超级简单,只需要动动手指,就能轻松获取数据。但是,由于网站的特殊性,我们可能需要通过一些技术手段来获取数据,比如爬虫。不过,别担心,我已经帮你们准备好了代码,直接复制粘贴就能用!

import os
import requests
import pandas as pd
from lxml import etree

# 设置headers,防止被认为是爬虫
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}

# 获取网页数据
def fetch_data(url):
    try:
        response = requests.get(url=url, headers=headers, verify=False)
        response.raise_for_status()  # 检查请求是否成功
        response.encoding = response.apparent_encoding
        return response.text
    except requests.RequestException as e:
        print(f"请求错误: {e}")
        return None

# 解析HTML
def parse_html(html_text):
    try:
        tree = etree.HTML(html_text)
        td_list = tree.xpath('//td[@class="xl1516790"]')[3:]  # 跳过前3个无用元素
        data = [
            {"全部信息": td.xpath('string()').strip()}
            for td in td_list if td.xpath('string()') and ',' in td.xpath('string()').strip()
        ]
        return data
    except Exception as e:
        print(f"解析HTML时发生错误: {e}")
        return []

# 保存数据到Excel
def save_to_excel(data, output_path):
    try:
        df = pd.DataFrame(data)
        with pd.ExcelWriter(output_path, engine='xlsxwriter') as writer:
            df.to_excel(writer, sheet_name='Sheet1', index=False)
        print(f'数据已成功保存到Excel文件:{output_path}')
    except Exception as e:
        print(f"保存到Excel时发生错误: {e}")

# 主函数
def main():
    url = 'https://www.b910.cn/tool/1.htm'
    html_text = fetch_data(url)
    if html_text:
        data = parse_html(html_text)
        if data:
            # 获取当前程序的目录,并设置文件名
            current_dir = os.path.dirname(os.path.abspath(__file__))
            output_path = os.path.join(current_dir, '中国省市区编码对照表.xlsx')  # 保存到当前目录
            save_to_excel(data, output_path)

if __name__ == "__main__":
    main()

四、数据处理

获取到的数据可能需要进一步处理,比如在Excel中进行分列。
这里有个小技巧:选中全部信息列,依次点击数据-分列-分隔符号-逗号分割-完成。这样,你就可以得到清晰、有序的数据列表了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员潘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值