1 Star 2 Fork 2

Tiehui.Lu / orgin-prj

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

中国行政区域数据抓取项目 WIKI 文档

数据源:国家统计局 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2017/index.html

[toc]

中国行政区域数据抓取项目 WIKI 文档
    一、2017年行政区划数据统计数据图表
    二、项目使用说明
        1. 抓取{省市区街道}四级数据
        2. 重新抓取失败的URL{省市区街道}四级数据
        3. 仅抓取五级{居委会}数据
        4. 重新抓取失败的URL{居委会}五级数据(
        5. 统计{省市区街道} 或 {居委会} 数据
        6. 重新统计失败的URL{省市区街道} 或 {居委会} 数据
    三、项目文件结构说明
    四、数据完整性校验方法

一、2017年行政区划数据统计数据图表

2017年行政区划数据统计数据:https://img-blog.csdnimg.cn/20181204175514480.png 2017年行政区划数据统计

二、项目使用说明

1. 抓取{省市区街道}四级数据

# 抓取{省市区街道}四级数据
count = startZhuQu(base_url, dataFile, my_headers)
# 抓取{省市区}三级数据
#count = startZhuQu(base_url, dataFile, my_headers, 3)
# 抓取{省市区街道}四级数据
#count = startZhuQu(base_url, dataFile, my_headers, 4)
# 仅抓取{居委会}第五级数据
#count = startZhuQu(base_url, dataFile, my_headers, 6)

print(count)

2. 重新抓取失败的URL{省市区街道}四级数据

logFile = open("data/log-error.log", "r", encoding=encoded)
log = logFile.read()
data = logListHandle(log)
count = startZhuQuFailURL(base_url, dataFile, my_headers, 4, data)

print(count)

3. 仅抓取五级{居委会}数据

# 1. 仅抓取五级{居委会}全部数据
count = startZhuQu(base_url, dataFile5, my_headers, 6)
print(count)

# 2. 仅抓取五级{居委会}指定数据
count = startZhuQu(base_url, dataFile5, my_headers, 6, 1, ['11'])
#count = startZhuQu(base_url, dataFile5, my_headers, 6, 2, ['4419', '4420', '4604']) # 广东省东莞市 广东省中山市 海南省儋州市
#count = startZhuQu(base_url, dataFile5, my_headers, 6, 3, ['110101', '110102'])
#count = startZhuQu(base_url, dataFile5, my_headers, 6, 4, ['441900124'])

print(count)

4. 重新抓取失败的URL{居委会}五级数据(

logFile = open("data/log-error.log", "r", encoding=encoded)
log = logFile.read()
data = logListHandle(log)
print(data)
count = startZhuQuFailURL(base_url, dataFile5, my_headers, 6, data)

print(count)

5. 统计{省市区街道} 或 {居委会} 数据

# 1. 统计{省市区街道} 数据
count = startZhuQu(base_url, statFile, my_headers, 0, 0, [], True, encoding=encoded)
# 2. 统计{居委会} 数据
#count = startZhuQu(base_url, statFile, my_headers, 6, 0, [], True, encoding=encoded)

print(count)

6. 重新统计失败的URL{省市区街道} 或 {居委会} 数据

logFile = open("data/log-error.log", "r", encoding=encoded)
log = logFile.read()
data = logListHandle(log)

# 1.重新统计失败的URL{省市区街道}四级数据
count = startZhuQuFailURL(base_url, statFile, my_headers, 4, data, True)

# 2. 重新统计{居委会} 数据
count = startZhuQuFailURL(base_url, statFile, my_headers, 6, data, True)

print(count)

三、项目文件结构说明

文件(夹) 文件 概述
根目录 index.py 程序主入口
func.py 公共函数库,提供:
方法一:抓取网页内容fetchHTML
方法二:解析错误日志记录,并返回数据列表logListHandle
方法三:数据列表去重listHandle
fetchHTML.py 抓取并解析HTML的主文件,提供:
方法一:抓取{省市区街道居委会}五级地理位置数据startZhuQu:
方法二:根据抓取失败的链接,解析得到数组,然后重新抓取数据startZhuQuFailURL
方法三:采用多线程抓取数据startFetchVillageWithThread
方法四:多线程执行fetchVillageWithThread
t.py 测试程序用,可忽略
sql/ china_region_three.sql {省市区}三级 数据sql语句(含港澳台数据)
china_region_four.sql {省市区街道}四级 数据sql语句(含港澳台数据)
china_region_village_670767.sql 纯{居委会}第五级数据sql语句
china_region_gat_6.sql 纯港澳台{省市区}三级数据sql语句,编号索引6位
china_region_gat.sql 纯港澳台{省市区}三级数据sql语句,编号索引12位
SQL脚本.sql 各种查询、统计sql语句示例
data/ 1234.sql 抓取的{省市区街道}四级数据
5.sql 抓取的{居委会}第五级数据
stat.log 统计数据
log-error.log 抓取错误的URL
stat-error-data.log 抓取错误的URL转格式化后的python字典
统计局数据分析/ 0国家统计局 抓取{省市区街道居委会}五级数据时的一些分析资料
1省 抓取{省}数据,需要解析的HTML格式
2市 抓取{市}数据,需要解析的HTML格式
3区 抓取{区}数据,需要解析的HTML格式
4街道 抓取{街道}数据,需要解析的HTML格式
5居委会 抓取{居委会}数据,需要解析的HTML格式
china_region.xlsx 经过数据校验后的各级数据量统计

四、数据完整性校验方法

  • 第一步:抓取数据并写入数据库
  • 第二步:数据库统计,分别统计数据库中{省市区街道居委会}各级数据量
  • 第三步:程序统计,全面跑一遍程序统计出{省市区街道居委会}各级数据量
  • 第四步:对比 数据库统计 的数据与 程序统计 的数据是否完全一致,验证并得出数据完整性结论

空文件

简介

抓取省市区街道居委会五级地址 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/dannytiehui/orgin-prj.git
git@gitee.com:dannytiehui/orgin-prj.git
dannytiehui
orgin-prj
orgin-prj
master

搜索帮助