爬取中国城乡数据的爬虫,有请求重试机制,只要执行一行命令即可获取所有省市区,另有采集好的mysql版本数据 传送门。
如果命令行卡住的话不要着急退出,稍等2分钟程序会继续运行。
- Python3
- Mysql
- requests
- lxml
- pymysql
- time
- os
- 执行建表语句
- 修改database.py中的数据库连接配置
- 命令行执行python3 spider.py
- 数据来源于国家统计局,网址:https://www.stats.gov.cn/ ,总共846462条数据,记录了全中国的省、市、县、镇、村委会的所有地区数据。
- 网络请求异常重试,尝试5次,避免网络异常时爬取中断
- 反爬虫机制
字段 | 备注 |
---|---|
id | 主键 |
p_code | 上一级编码 |
code | 编码 |
name | 名称 |
url | 当前的城市链接,供下一次采集 |
level | 级别 |
CREATE TABLE `china_regions` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`p_code` varchar(50) NOT NULL DEFAULT '' COMMENT '上一级编码',
`code` varchar(50) NOT NULL DEFAULT '' COMMENT '编码',
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
`url` varchar(200) NOT NULL DEFAULT '' COMMENT '链接',
`level` tinyint(4) NOT NULL COMMENT '级别:1-省,2-市,3-县,4-镇,5-村委会',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 性能优化
- 去重处理