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

采集链接: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. Spring发布新成员:Spring GraphQL!高调出场的GraphQL能火起来了吗?
  2. 商务智能 “软肋”何在?
  3. 使用HTML5画布实现的超棒javascript动画仪表板:gauge.js
  4. ubuntu 安装intel iofrt 和icc编译器
  5. 数字后端——时序验证
  6. c#自动更新+安装程序的制作
  7. 与 C++11 多线程相关的头文件
  8. Spring Boot 学习之,数据库三 ,事务
  9. js学习(利用websocket监控服务器)
  10. RSS 之父炮轰 Google 强推 HTTPS
  11. JasperReports学习(1)
  12. i3能装Linux虚拟机,使用i3wm重新安装Ubuntu
  13. Enviropro EP100D-08测定仪
  14. Grids for mac(强大的Instagram客户端工具)
  15. JAVA复习 (期末重点考点总结)
  16. Visual Odometry
  17. 初测ONES项目管理工具,寻求与众不同
  18. 绘制折线图分析股票涨跌
  19. 避免侵权!这10个免费可商用的图片网站,请一定收好
  20. matlab 图片字符切割,基于MATLAB的图片中字符的分割与识别

热门文章

  1. fitnesse java_从Fitnesse中学习Java单元测试
  2. 基于Apache math3 的遗传算法计算复杂函数在定义域内的最值
  3. manjaro远程linux,Manjaro Linux 入门使用教程
  4. 苹果手机怎么添加带有日历提醒的待办事项
  5. post json数据
  6. C语言基础位运算符号
  7. Linux网络入侵检测系统
  8. 谈谈对于外链SEO的独特见解!
  9. 中小型制造业该如何挑选ERP,4个方向助你找到合适的ERP系统
  10. remote desktop mac(微软远程连接工具)