多渠道实现获取国家行政区数据:爬虫、调用API、私有化部署

多渠道实现获取国家行政区数据:爬虫、调用API、私有化部署

背景

现实情况,在信息系统开发、电子商务平台、app等等相关软件开发,都会设计到行政区数据联动,但是如何获取最新、准确的数据呢? 在这里给各位推荐三种获取方式

一、Python国家行政区数据爬取示例【源码可运行】

这里里给初学者、有需要的人提供一个数据抓取的脚本,有效、可运行,将抓取的数据写入到本地csv文件中 不废话,上代码:

  • 注意:改代码可以抓取:省、市、区、乡镇街道、村社区 五级完整行政区,由于村社区数量比较大,抓取方法调用被注释了,有需要的可以取消注释
from bs4 import BeautifulSoup
import csv
import re
import requests

class XingZhengQu(object):

    def __init__(self):
        self.session = requests
        self.initCsvWriter()

    def initCsvWriter(self):
        self.csvFile = open('xingzhengqu.csv', 'w')
        self.csvWriter = csv.writer(self.csvFile)
        self.csvWriter.writerow(['行政代码','名称','层级','类型'])

    def csvWriteRow(self,row):
        self.csvWriter.writerow(row)
    # 省
    def getProvice(self):
        url='http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2022/index.html'
        resp = self.session.get(url)
        resp.encoding='utf-8'
        soup = BeautifulSoup(resp.text, 'lxml')

        a = soup.select('table.provincetable > tr.provincetr > td >a')
        for item in a:
            proviceUrl = item.get('href')
            pid = re.findall("([0-9]+)\.html",proviceUrl)

            print('--',pid,proviceUrl)
            code = pid[0].ljust(12,'0')
            print('{}-{}-{}'.format(code,item.get_text(),1))
            row =[code,item.get_text(),1,'']
            self.csvWriteRow(row)
            cityUrl = '{}/{}'.format(url.rsplit('/',1)[0],proviceUrl)
            self.getCity(cityUrl)
    # 市
    def getCity(self,url):
        print('getCity',url)
        resp = self.session.get(url)
        resp.encoding='utf-8'
        soup = BeautifulSoup(resp.text, 'lxml')

        trs = soup.select('table.citytable > tr.citytr')
        for tr in trs:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值