获取国家统计局行政区划数据(复制粘贴)
1.安装python(自行百度)
2.安装依赖
3.创建文件复制以下内容
备注: if province_name==r'甘肃省' : 根据需要判断是否需要读取单独省份数据。
# This is a sample Python script.
# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import requests
from bs4 import BeautifulSoup
import pymysql
import time
class Administrative(object):
def __init__(self):
self.db = pymysql.connect(host="127.0.0.1", port=3306,
database="ceshi",
charset="utf8mb4", user="root",
password="root")
self.main()
self.db.close()
def main(self):
base_url = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/'
sql = "insert into area_2021 (area_code,area_name,parent_code,level) values (%s,%s,%s,%s)"
trs = self.get_response(base_url, 'provincetr')
for tr in trs: # 循环每一行
for td in tr: # 循环每个省
province_code = td.a.get('href').replace('.html','')
province_name = td.a.get_text()
if province_name==r'甘肃省' :
pass
else:
continue
province_url = base_url + td.a.get('href')
# print(province_name)
# time.sleep(1)
data = [province_code,province_name,'0',1]
print(data)
datas = []
datas.append(data)
self.connect_mysql(sql, datas)
trs = self.get_response(province_url, None)
for tr in trs[1:]: # 循环每个市
city_code = tr.find_all('td')[0].string
city_name = tr.find_all('td')[1].string
city_url = base_url + tr.find_all('td')[1].a.get('href')
#print(city_name)
data = [city_code, city_name, province_code, 2]
print(data)
datas = []
datas.append(data)
self.connect_mysql(sql, datas)
trs = self.get_response(city_url, None)
for tr in trs[1:]: # 循环每个区
county_code = tr.find_all('td')[0].string
county_name = tr.find_all('td')[1].string
#print(county_name)
if tr.find_all('td')[1].a:
county_url = base_url +province_code+'/'+ tr.find_all('td')[1].a.get('href')
county_baseurl = county_url[:county_url.rfind('/')+1]
data = [county_code, county_name, city_code, 3]
print(data)
datas = []
datas.append(data)
self.connect_mysql(sql, datas)
# time.sleep(1)
trs = self.get_response(county_url, None)
if trs is None:
print(county_url)
else:
for tr in trs[1:]: # 循环每个乡
town_code = tr.find_all('td')[0].string
town_name = tr.find_all('td')[1].string
town_url = county_baseurl + tr.find_all('td')[1].a.get('href')
#print(town_name)
data = [town_code, town_name, county_code, 4]
print(data)
datas = []
datas.append(data)
self.connect_mysql(sql, datas)
# time.sleep(1)
trs = self.get_response(town_url, None)
if trs is None:
print(town_url)
else:
for tr in trs[1:]: # 循环每个村
village_code = tr.find_all('td')[0].string
village_name = tr.find_all('td')[2].string
# print(village_name)
data = [village_code, village_name, town_code, 5]
print(data)
datas = []
datas.append(data)
self.connect_mysql(sql, datas)
# data = [province_name, city_code, city_name, county_code, county_name]
# print(data)
# datas.append(data)
else:
continue
def get_response(self, url, attr):
i = 0
while i < 3:
try:
response = requests.get(url, timeout=5)
response.encoding = 'utf-8' # 编码转换
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find_all('tbody')[1].tbody.tbody.table
if attr:
trs = table.find_all('tr', attrs={'class': attr})
else:
trs = table.find_all('tr')
return trs
except requests.exceptions.RequestException:
i += 1
print("请求超时")
def connect_mysql(self, sql, data):
cursor = self.db.cursor()
try:
result = None
if data:
if isinstance(data[0], list):
cursor.executemany(sql, data)
else:
cursor.execute(sql, data)
else:
cursor.execute(sql)
result = cursor.fetchall()
except Exception as e:
print(e)
self.db.rollback();
finally:
cursor.close()
self.db.commit(); # 提交操作
return result
if __name__ == '__main__':
Administrative()
获取国家统计局行政区划数据(复制粘贴)相关推荐
- C#实现excle数据复制粘贴到DataGrideView表格中
C#实现excle数据复制粘贴到DataGrideView表格中 //重写系统控件的检测系统快捷按键命令,只要放在展示dgv表格的窗体中就行 using System; using System.Co ...
- excel表格如何转换成word表格_将excel/word数据复制粘贴到word表格的几种方式
将excel/word数据复制粘贴到word表格的几种方式 有时候我们需要把excel中的数据粘贴到word中的一个表格中,或者在word中一个表格的内容粘贴到另一个表格中.这两种情况,都遵循同样的操 ...
- Excel 2010 如何将筛选后的数据复制粘贴到另一个工作表筛选后的表格里
如果你是指自动筛选后,把筛选数据复制/粘贴到另外一个工作表中,不妨试试试 第一步选中筛选后的数据区域:第二步执行菜单命令"编辑/定位/定位条件/可见单元格",确定:第三步单击复制按 ...
- matlab复制txt里的一列,将txt格式里的两列数据复制粘贴导入excel 后全都在同一列里,怎样让它们分成两列?...
将txt格式里的两列数据复制粘贴导入excel 后全都在同一列里,怎样让它们分成两列?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起 ...
- 获取国家统计局行政区划表
一.国家统计局网站有最新最全的全国行政区划表,从网页源代码看来,靠,我都怀疑是不是用电子表格或是文字处理软件做的,还"国家"统计局呢. http://www.stats.gov.c ...
- html数据复制粘贴,如何复制和粘贴 HTML (HTML)
如何复制和粘贴 HTML (HTML) 12/11/2015 本文内容 [ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员.如果 ...
- python爬虫获取国家统计局乡镇数据
import requests from bs4 import BeautifulSoup #解析网页 import lxmlurl="http://www.stats.gov.cn/sj/ ...
- excel数据复制粘贴入PL/SQL Developer的方法
如需转载,请注明来源,谢谢合作. 若本文对您有一点点的帮助,欢迎点赞.评论和关注.您的鼓励和支持是我继续学习和分享的动力. 推荐免费.高效.入门级的SQL教程http://www.w3school.c ...
- 制作一套适用于Oracle数据库的县及县以上行政区划数据
2019独角兽企业重金招聘Python工程师标准>>> 因为项目中要用到最新版的中国行政区划数据,我总结了如下方法归集数据,仅供参考. 之前已经写过一篇博客<总结几个有关国家行 ...
最新文章
- AIX下镜像制作与取消,更换硬盘
- 阿里为啥放弃Oracle、Hadoop,选择全面拥抱它!网友:断臂求生?
- Scala学习第五天数组
- 获取GridView中RowCommand的当前选中行的索引或主键Id
- C++ STL deque创建
- 【报告分享】抖音蓝V账号定位及外化罗盘.pdf(附下载链接)
- POJ 1321-棋盘问题-简单搜索DFS
- 【HDOJ6957】Maximal submatrix(单调栈,最大子矩阵面积)
- 从远程服务器中下载文件到本地
- (转载)Jvm工作原理学习笔记
- AN515-43 COMPAL LA-H901P笔记本主板+小板点位图
- 会员积分系统运营的五个操作步骤
- 如何使用计算机文件共享,两台电脑如何共享文件?【步骤图解】
- IOS13以上抓https包,基于win7+Fiddler,操作记录
- android波纹动画,Android实现水波纹效果
- 企业微信自建应用调试方法以及小坑
- xavier / acts-as-tree-with-dotted-ids
- 【MySQL】分组查询
- Python re.compile以及group分组
- 惠普笔记本恢复出厂系统