全国统计用区划代码和城乡划分代码 2022年数据[爬虫]【Json+CSV格式】

原始数据连接http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2022/ 2021年的数据连接已经失效。整体页面变化不大,但是新的页面直接使用request拉数据获取的页面数据是错误的:
<noscript>
<h1><strong>Please enable JavaScript and refresh the page.</strong></h1>
</noscript>

所以为了正常获取数据可以使用selenium来获取页面源代码之后在使用以前的bs4来处理数据。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from lxml import etree


chrome_options = Options() # 实例化Option对象
chrome_options.add_argument('--headless') # 把Chrome浏览器设置为静默模式
chrome_options.add_argument('--disable-gpu') # 禁止加载图片
driver = webdriver.Chrome(options = chrome_options) # 设置引擎为Chrome,在后台默默运行

def http_get(url):
    driver.get(url)
    return driver.page_source

此时就可以正常获取数据了。

json转csv工具参数说明:

(venv) (base) zhongming@ZhongMingdeMacBook-Pro get_district % python json2csv.py   
****************************************************************************************************
国家统计局行政区划爬虫 Json转CSV
http://h4ck.org.cn
obaby@mars
Usage: json2csv -a -i <inputfile> -o <outputfile>
 -a 转换当前目录下所有json文件
 -i json文件
 -o 转换后的csv文件
****************************************************************************************************

代码有bug ,-o参数无效,如果要使用-o参数,请自行修改代码。另外,如果转换出错,请删除报错的json文件,重新生成,多数是由于网络问题,导致json文件数据不完整导致的错误,重新爬取对应的省份即可。

csv文件结构预览:

项目开源代码地址:

 


分享文章:

猜你喜欢:

5 comments

    1. Google Chrome Google Chrome Mac Mac China山东省青岛市 移动 ip address 223.80.*.*

      这个数据还是非常全的,全国的行政区划基本都有了

  1. Microsoft Edge Microsoft Edge Windows Windows China内蒙古通辽市 电信 ip address 123.179.*.*

    数据挺全,还是最新的数据。拿走了,谢谢 dance dance

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注