一、宝藏分享
今天来给大家安利一个超级实用的小技巧,再也不用为了获取中国省市区县列表而头疼啦!
二、发现新大陆
神奇网站,它竟然可以免费获取我们急需的省市区县列表!
网站地址
但是需要注意的是,可能因为网络原因,有时候访问会有一点点困难,建议大家检查一下链接的合法性,或者稍后再试。
三、如何操作
操作起来也是超级简单,只需要动动手指,就能轻松获取数据。但是,由于网站的特殊性,我们可能需要通过一些技术手段来获取数据,比如爬虫。不过,别担心,我已经帮你们准备好了代码,直接复制粘贴就能用!
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中进行分列。
这里有个小技巧:选中全部信息列,依次点击数据-分列-分隔符号-逗号分割-完成。这样,你就可以得到清晰、有序的数据列表了。