代码拉取完成,页面将自动刷新
areacode是用于抓取国家统计局地址数据的爬虫程序,日常项目中很多地方都需要用到地址数据,目前全国地址数据由国家统计局发布,包含:省,市/州,区县,乡镇,村等5个级别数据,共计60多万条(因地区合并等原因,每年数据均不等)。
程序由Python编写,推荐使用Python3
pip3 install requests
pip3 install bs4
请将spiders.py文件中的29行dataYear改成需要抓取的年份。
#数据年份
dataYear=2021
最后生成的SQL insert语句保存的文件名及路径位于当前目录下的data目录中,默认文件为:areacode2021-all.sql,其中年份为数据年份dataYear参数。
python3 spiders.py
#指定年份
python3 spiders.py -y 2021
#只爬取省、市州、区县三个级别数据
python3 spiders.py -s 2021
python3 spiders.py -?
可以通过命令查看:
python3 spiders.py -sql
指定年份:
python3 spiders.py -sql 2021
CREATE TABLE IF NOT EXISTS areacode2021 (
code varchar(12) PRIMARY KEY NOT NULL COMMENT '地址code',
area_name varchar(255) DEFAULT '' COMMENT '名字',
type int COMMENT '级别,1:省,2:市/州,3区县,4乡镇,5村',
parent_code varchar(12) COMMENT '父级code ',
KEY `areacode_index` (`parent_code`)
) DEFAULT CHARSET=utf8 COMMENT='地址表2021';
CREATE TABLE if not exists public.areacode2021 (
code varchar(12) NULL,
area_name text NULL,
"type" integer NULL,
parent_code varchar(12) NULL,
CONSTRAINT areacode2021_pk PRIMARY KEY (code)
);
CREATE INDEX areacode2021_parent_code_idx ON public.areacode2021 (parent_code);
CREATE INDEX areacode2020_type_idx ON public.areacode2021 ("type");
COMMENT ON TABLE public.areacode2021 IS '地址表2021';
COMMENT ON COLUMN public.areacode2021.code IS '地址code';
COMMENT ON COLUMN public.areacode2021.area_name IS '名字';
COMMENT ON COLUMN public.areacode2021."type" IS '级别,1:省,2:市/州,3区县,4乡镇,5村';
COMMENT ON COLUMN public.areacode2021.parent_code IS '父级code';
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。