公司业务需要,把相关数据采集了一遍,在此记录。

采集链接:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html(可修改对应年限)

使用了scrapy框架,这里直接贴spider代码,存储代码因人而异就不贴了。

import scrapy
import re
from china_city_spider.items import ChinaCitySpiderItemclass ChinaCitySpider(scrapy.Spider):name = 'china_city'base_url = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/'def start_requests(self):yield scrapy.Request(self.base_url, meta={'home_page': True}, dont_filter=True)def parse(self, response, **kwargs):url_temp = response.meta.get('url_temp')level = response.meta.get('level', 1)from_code = response.meta.get('from_code', 0)if not url_temp:url_temp = self.base_urltr_list = response.xpath("//table[contains(@class,'table')]//tr[contains(@class,'tr')]")if response.meta.get('home_page'):# 首页规则for tr in tr_list:for td in tr.xpath("./td"):code = td.re(r"(\d+)\.html")if code:code = code[0]else:continuename = td.xpath(".//a/text()").get()item = self.create_item(code, from_code, name, level)yield ChinaCitySpiderItem(**item)uri = td.xpath(".//a/@href").get()url_code = codeif uri:url = self.base_url + uri_url_temp = url_temp + url_code + '/'yield scrapy.Request(url, callback=self.parse, meta={'url_temp': _url_temp, 'level': level + 1, 'from_code': code})else:for tr in tr_list:content = tr.xpath(".//td//text()").getall()if content:code = content[0]name = content[-1]item = self.create_item(code, from_code, name, level)yield ChinaCitySpiderItem(**item)uri = tr.xpath(".//a/@href").get()if uri:url = re.search(r'.*/', response.url).group() + uriyield scrapy.Request(url, callback=self.parse, meta={'level': level + 1, 'from_code': code})else:self.logger.error(f'Can\'t get code and name: {response.url}')def create_item(self, code, from_code, name, level):item = {'id': code,'parent_id': from_code,'cname': name,'ctype': level,'code': int(code),}return item

全量67w数据。

国家统计局2020年统计用区划代码全量采集相关推荐

  1. Python获取[2016年统计用区划代码和城乡划分代码(截止2016年07月31日)]

    #!usr/bin/env python #-*- coding:utf-8 -*- import requests import re import time ##系统初始化 urlHeader=& ...

  2. 城市筛选数据(根据2020年度全国统计用区划代码和城乡划分代码更新维护的标准)

    根据2020年度全国统计用区划代码和城乡划分代码更新维护的标准,整理的城市联动筛选数据: /* 根据2020年度全国统计用区划代码和城乡划分代码更新维护的标准 */ var cityList = [{ ...

  3. 国家统计局统计用区划代码抓取记

    本来只是考虑在程序中建一个省地县的树状选取构件,想从网上找一个地名库,结果不是要积分就是要会员.看到网上有介绍利用国家统计局统计用区划代码抓取的,心想自己也可以抓取试试,结果在这个歧路上越走越远,用了 ...

  4. 获取全国统计用区划代码和城乡划分代码并写入数据库

    背景:业务需要全国省市区的划分以及3级级联,正好想起2018年曾经抓取过国家统计局网站的去全国统计用区划代码和城乡划分代码,原资源的地址:2018年全国统计用区划代码和城乡划分代码.sql-MySQL ...

  5. [数据][json格式] 2016年统计用区划代码和城乡划分代码

    [数据][json格式] 2016年统计用区划代码和城乡划分代码 2013 年的时候写过一篇 [数据][xml格式] 2012年统计用区划代码和城乡划分代码. 到了今天,我需要某省的省市县乡村五级数据 ...

  6. Python爬虫练习五:爬取 2017年统计用区划代码和城乡划分代码(附代码与全部数据)

    本文仅供学习,需要数据的文末有链接下载,请不要重复爬取. 最近工作中,因为统计用区划代码和城乡划分代码更新了最新的2017版,需要爬取最新的数据.于是乎,本次花了一定精力,将整个2017版数据完完整整 ...

  7. 【Howe学爬虫】全国统计用区划代码爬取

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫 ...

  8. python爬虫练习五(补充): 2018年统计用区划代码和城乡划分代码(附代码与全部数据)

    之前爬取过2017年的数据 详见 Python爬虫练习五:爬取 2017年统计用区划代码和城乡划分代码(附代码与全部数据) ,下面有评论说广东省的数据缺少了东莞与中山两个市的数据,检查网页结构发现确实 ...

  9. 数据的增量采集与全量采集

    文章目录 前言 1. 传统数据库的增量与全量 1.1 Oracle 1.2 Mysql 2. 大数据框架的增量与全量 2.1 业务数据 2.2 日志数据 前言 本文简单示例传统数据库与大数据系统下数据 ...

最新文章

  1. CS224W图机器学习课,斯坦福大牛主讲 | 视频、课件
  2. 整数转化成字符串; 字符串转换为整数
  3. NHibernate重要概念的解释和说明
  4. java面试题4(基础)
  5. [转]DML DDL DCL 语言的区别
  6. [java进阶]2.Jedis基础与List的接口
  7. 怎样验证TextBox输入的全是数字 - .NET技术 / ASP.NET
  8. [CMMI]中型项目流程梳理
  9. hdu---1172猜数字
  10. 音乐 美术 劳技 计算机教研组工作总结,美术劳技室工作总结
  11. 从 C10K 到 C500K
  12. Android NDK开发之 Android系统开发中LOG的使用
  13. r语言 col_co,cob,col,con,cor,cog前缀其实都是com变化而已
  14. XMLHTTP的ReadyState与Statu详解
  15. 登陆服务器出现身份验证错误,登录服务器,提示“发生身份验证错误。要求的函数不受支持”的解决办法...
  16. Dreamweaver cs 6无法添加浏览器 亲测有效!!!
  17. 数学模型参考文献的格式
  18. 免费申报!5G网络Awards参评企业征集,欢迎参与!
  19. Kafka实时流数据经Storm至Hdfs
  20. 最新!2021中国大学排名发布:清/北/浙大/上交/武大居前五

热门文章

  1. MYSQL函数 group_concat巨坑!!!
  2. 【Vue】 组件封装
  3. MOS管认识及选型的一点见解
  4. IDE在控制台打印覆盖上次打印
  5. 餐饮门店点餐系统源码(电脑手机通用)
  6. 四路抢答器的控制程序设计
  7. yolov2模型导入keras方法及问题
  8. 添加地图上守卫和弓箭手的方法
  9. 【cocos creater】4.仿《弓箭传说》- 创建游戏背景
  10. 分数一定是有理数吗?