Stata 爬虫:如何爬取并清洗民政部行政区划代码数据

  • 下载行政区划代码(Stata 爬虫)
  • Stata 爬虫数据清洗
  • 与主数据对接(merge)

这里使用的行政区划代码数据来自于 民政部:2020 年 12 月中华人民共和国县以上行政区划代码 。

首先网页爬取和数据导入。使用 copy 命令,可以在当前目录生成 district_code.txt 文件,这里存储的是网页源码。接着使用 infix 将 TXT 文件导入 Stata。

从导入的结果(上图右侧)来看,我们想要的区划名称和区划代码的存储位置都很有规律,可以利用正则表达式进行提取。

我们希望分别将区划代码和区划名称伸展成两个变量(效果见下图⑥),我这里是先「克隆」( clonevar )一个完全相同的变量,然后一个变量保留区划代码(destring,下图③),另一个变量保留区划名称(下图④),然后利用 carryforward 向下填充区划代码(下图⑤),最后保留区划名称非空值、给变量重命名即可完成目标(下图⑥)。

推荐阅读:
Stata 爬虫:爬取地区宏观数据| 连享会主页
详解 stata 爬虫抓取网页上的数据 part 1 -
详解 stata 爬虫抓取网页上的数据 part 2 -

** 爬取并清洗「民政部行政区划代码」 **
copy "http://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html" "district_code.txt"
    infix strL v 1-20000 using "district_code.txt", clear
    keep if ustrregexm(v, "")
    drop if ustrregexm(v, ".*width.*")
    replace v = ustrregexra(v, "||\s", "", .)
    replace v = ustrregexra(v, ".*>", "", .)
    clonevar v1 = v
    destring v,replace force
    replace v1 = "" if (v != .)
    carryforward v, replace
    drop if v1 == ""
    rename (v v1) (district_code district_name)
save "district_code.dta", replace 
image

你可能感兴趣的:(Stata 爬虫:如何爬取并清洗民政部行政区划代码数据)