从国家统计局获取最新国家省市区乡村5级行政区域代码名称数据

这段代码实现了一个爬虫,从国家统计局网站抓取并存储中国的省、市、县、乡、村五级行政区域数据。通过遍历网页,解析HTML,最终将数据存储到SQLite数据库中。程序处理了异常情况,支持断点续爬,适配了编码问题。

 

 

#coding=utf-8
import requests
from bs4 import BeautifulSoup
#import pymysql
import time
import sqlite3
import os 
import _thread
import traceback

class Administrative(object):
    def __init__(self):
        self.db = sqlite3.connect('sqlite3.db',check_same_thread=False)
        sql='DROP TABLE IF EXISTS china;'
        sql2='CREATE TABLE china  (cid INTEGER PRIMARY KEY ,province_name varchar(255),city_code varchar(255),city_name varchar(255),county_code varchar(255),county_name varchar(255),xiang_code varchar(255),xiang_name varchar(255),cun_code varchar(255),cun_name varchar(255) )'
        self.db.execute(sql)
        self.db.execute(sql2)
        
        self.main()
        self.db.close()


    def main(self):
        base_url='http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/'
        trs=self.get_response(base_url,'provincetr')
        for tr in trs:#循环每一行
            #datas=[]


            for td in tr:#循环每个省

                if 
### 获取国家统计局最新发布的四行政区划数据 为了实现这一目标,可以采用如下方法: #### 使用Selenium抓取网页数据 由于国家统计局网站可能涉及JavaScript动态加载内容,因此推荐使用Selenium来模拟浏览器行为并提取所需信息。安装必要的库之后,编写脚本定位页面上的下拉菜单选项,并遍历各个层的区域代码。 ```python from selenium import webdriver import time options = webdriver.ChromeOptions() driver = webdriver.Chrome(options=options) url = 'http://www.stats.gov.cn/tjsj/tjbz/tjdqybh/' # 假设这是国家统计局的相关链接 driver.get(url) time.sleep(3) # 等待页面加载完成 # 定位到具体的下拉框元素并操作它以显示更多隐藏的内容 dropdown_element = driver.find_element_by_id('some-id') for option in dropdown_element.find_elements_by_tag_name('option'): print(option.text, option.get_attribute('value')) driver.quit() # 关闭浏览器实例 ``` 上述代码片段展示了如何通过Selenium访问指定URL并处理HTML中的<select>标签内的<option>项[^1]。 #### 数据清洗与转换 一旦获得了原始文本形式的数据,则需进一步清理和结构化这些信息以便后续分析或存储。这里假设已经得到了一系列字符串格式的地名及其对应的编码。 ```python data_list = [ {"code": "110000", "name": "北京市"}, ... ] df = pd.DataFrame(data_list) ``` 创建DataFrame对象后可根据需求调整列顺序以及重命名列标题等操作[^2]。 #### 导出至Excel文件 最后一步就是利用pandas内置功能保存整理好的数据集为.xlsx格式文档。 ```python with pd.ExcelWriter('admin_division_codes.xlsx', engine='xlsxwriter') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) ``` 此过程会将内存里的Pandas DataFrame写入本地磁盘上名为`admin_division_codes.xlsx`的工作簿内,并且不保留默认索引列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值