php抓取统计局区划代码,抓取国家统计局的代码和名称,爬取,区域,划分,及

from bs4 import BeautifulSoup

import pandas as pd

import requests

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

获取一级代码、名称、下一级链接

通过设置参数originUrl来调整爬取的年份

def getOneLevelCodeName(originUrl = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html'):

web = requests.get(originUrl,headers=headers) #获取网页

web.encoding = web.apparent_encoding #设置编码

soup = BeautifulSoup(web.text,'html.parser') #解析网页

provinceList = soup.select('.provincetr') #查找类名为provincetr的内容

oneLevelWeb = []

for table in provinceList:

for province in table.select('a'):

oneLevelWeb.append((province['href'],province.text))#获取下一级短链接、获取省名

oneLevelWebUrl = [(url[0][0:2]+'0000000000','中国-'+url[1],originUrl[0:54]+url[0]) for url in oneLevelWeb] #构建区划代码、省名、下一级链接

return oneLevelWebUrl

c3454b3157096a5ee264abf53ed95704.png

获取二级代码、名称、下一级链接

#根据一级链接,获取下一级

def getSecodLevelCodeName(proLevelName=None,url='None'):

if proLevelName is None or url == 'None':

pass

else:

web = requests.get(url,headers=headers)

web.encoding = web.apparent_encoding

soup = BeautifulSoup(web.text,'html.parser')

secondLevelCodeNameList = soup.select('.citytr')

retList = []

for tag in secondLevelCodeNameList:

if tag.text[12:] == '市辖区':

retList.append((tag.text[0:12],proLevelName+'-'+proLevelName.split('-')[-1]+tag.text[12:],url[0:54]+tag.select('a')[0]['href']))

else:

retList.append((tag.text[0:12],proLevelName+'-'+tag.text[12:],url[0:54]+tag.select('a')[0]['href']))

return retList

f48f0655b65210fb36d6a2ee1eb0d049.png

获取三级代码、名称、下一级链接

#根据二级链接,获取下一级

def getThirdLevelCodeName(proLevelName=None,url='None'):

if proLevelName is None or url == 'None':

pass

else:

web = requests.get(url,headers=headers)

web.encoding = web.apparent_encoding

soup = BeautifulSoup(web.text,'html.parser')

thirdLevelCodeNameList = soup.select('.countytr')

retList = []

for tag in thirdLevelCodeNameList:

try:

retList.append((tag.text[0:12],proLevelName+'-'+tag.text[12:],url[0:56]+'/'+tag.select('a')[0]['href']))

except:

retList.append((tag.text[0:12],proLevelName+'-'+proLevelName.split('-')[-1]+tag.text[12:],'None'))

return retList

b90897145c5356a20c76bec93d2df43e.png

获取四级代码、名称、下一级链接

#根据三级链接,获取下一级

def getFourthLevelCodeName(proLevelName=None,url='None'):

if proLevelName is None or url == 'None':

pass

else:

web = requests.get(url,headers=headers)

web.encoding = web.apparent_encoding

soup = BeautifulSoup(web.text,'html.parser')

fourthLevelCodeNameList = soup.select('.towntr')

retList = []

for tag in fourthLevelCodeNameList:

retList.append((tag.text[0:12],proLevelName+'-'+tag.text[12:],url[0:60]+tag.select('a')[0]['href']))

return retList

2226cf29c9c242b10f62e0dd44782da1.png

转为DataFrame,输出excel文件

pd_oneLevel = pd.DataFrame(oneLevel)

pd_oneLevel

pd_secondLevel = pd.concat([pd.DataFrame(data) for data in secondLevel])

pd_secondLevel

pd_thirdLevel = pd.concat([pd.DataFrame(data) for data in thirdLevel])

pd_thirdLevel

pd_fourthLevel = pd.concat([pd.DataFrame(data) for data in fourthLevel])

pd_fourthLevel

pd_allLevel = pd.concat([pd_oneLevel,pd_secondLevel,pd_thirdLevel,pd_fourthLevel],ignore_index=True)

pd_allLevel.columns = ['区划代码','名称','下一级网址']

pd_allLevel

3502ae2d8fbc18ea8ee1746c66eba385.png

保存到当前目录

import os

pd_allLevel.to_excel(r''+os.path.realpath('__file__')[0:-8]+'2018区划代码及名称.xlsx',index=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XMPP聊天之Openfire 的安装和配置---Mac OS

2019独角兽企业重金招聘Python工程师标准>>> 一、下载并安装openfire 1、下载最新的openfire安装文件 官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfire openfire是服务器,下面还有一个spark,这个是一…

物理学十大著名经典实验!你知道几个?

科学实验是物理学发展的基础,又是检验物理学理论的惟一手段,特别是现代物理学的发展,更和实验有着密切的联系。现代实验技术的发展,不断地揭示和发现各种新的物理现象,日益加深人们对客观世界规律的正确认识&#xff0…

5码默认版块_5个小众的生活学习类的宝藏App

今天分享 5 个宝藏 App ,每一个都是小众冷门,每一个都是自己用心挑选,相信可以让你眼前一亮。所有 App 下载方法文章末尾提供。1 卡片日记卡片日记是一个颜值极高的卡片日记软件,它备受好评,可以说你用过就知道好用&am…

CSS/DIV网页设计视频教程目录【转】

CSS/DIV网页设计视频教程目录 欢迎您来到前沿视频教室,下面列出的是CSS/DIV网页设计视频教程列表。这组视频教程是配合《精通CSSDIV网页样式与布局》图书制作的,每一课对应于图书中的每一章。 我们还会不断地推出相关的课程, 如果您有兴趣&am…

世界上最伟大的十大公式

▲ 点击查看英国科学期刊《物理世界》曾让读者投票评选了“最伟大的公式”,最终榜上有名的十个公式既有无人不知的112,又有著名的Emc^2;既有简单的-圆周公式,又有复杂的欧拉公式……这些公式不仅仅是数学家和物理学家的智慧结晶&a…

区块链浏览器_全球首款区块链浏览器是啥名堂?傲游6首发体验

[PConline 应用]沉寂多年的傲游浏览器终于准备发布大版本更新了,这次为大家带来的是傲游浏览器6,一个被官方称为“世界第一个区块链浏览器”的新版本,那么,有何特色呢?我们一起来看看吧。傲游浏览器6(后简称傲游6)在安…

ASP.NET Core官方文档+源码,这样学效率高10倍!

.NET Framework停更一年了,学习.NET Core跨平台是大势所趋。如何快速学习ASP.NET Core?在我看来,先看微软ASP.NET Core5.0官方中文文档,再大致读一遍源码,最后结合一些场景做些扩展封装,就可以很轻松的驾驭…

WPF 2D绘图(2)Geometry

Shape是对Geometry的一种封装,Shape本质上还是通过绘制Geometry的形状,然后以填充笔刷来呈现效果 如Rectangle <Path Stroke"Black" StrokeThickness"1" Fill"#CCCCFF"><Path.Data><RectangleGeometry Rect"30,55 100 30&qu…

Windows Server 2008 R2 之三十故障转移群集(二)

五、群集的管理破坏群集&#xff1a;一个两节点的群集&#xff0c;对于第一个节点必须在“节点”中选择“退出”才能退出群集&#xff1b;对于第二个节点&#xff0c;必须在下图选择“破坏群集”才能退出群集。配置服务和应用程序&#xff1a;节点&#xff1a;存储&#xff1a;…

提升心力---摆脱拿着锤子看啥都是钉子

从程序员到一个团队的管理者&#xff0c;这中间需要经过一次又一次的蜕变&#xff0c;最终才能变得处理任何事情都得心应手。韩非子曾说&#xff1a;下君用己之力、中君用人之力、上君用人之智。大部分的管理者可能都处在用人之力的阶段&#xff0c;并向着用人之智前进。最近看…

curd什么意思中文_每日一句英译英:She's a ten什么意思?

每日一句英译英&#xff1a;Shes a ten什么意思&#xff1f;用一句“没头没脑”的英语句子劈头盖脑就问你“中文什么意思&#xff1f;“&#xff0c;这是典型的把英语当纯粹知识学习的例子&#xff0c;也是“只求答案&#xff0c;不问过程”的应试思维模式。“知识海洋”浩瀚无…

你家猫砸东西是不是也专挑贵的砸?

1 这猫也太会了吧&#xff1f;▼2 哥哥坐地上耍赖想让爸爸抱被妹妹出手摆平了▼3 好可爱的校车▼4 也许人家只是想静静呢&#xff1f;▼5 最近很流行的【泼花成画】▼6 妹妹的表情简直学到了精髓▼7 介绍一下&#xff0c;这是一只阿拉斯猪和阿拉斯小猪崽儿▼你点的每个赞…

SQL Server 分区表 处理海量数据

你是不是也在苦苦寻求优化自己的SQL Server数据库的方法?如果你的数据库里有不少非常大的表格&#xff0c;分区功能能够帮到你很大的忙…… 【IT专家网独家】你是不是也在苦苦寻求优化自己的SQL Server数据库的方法?如果你的数据库里有不少非常大的表格&#xff0c;分区功能能…

第十一周项目3-程序的多文件组织

下面的程序中的代码分别保存在两个文件中&#xff0c;利用多文件的方式组织。 mian.cpp /**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称&#xff1a;temp.cpp*作者&#xff1a;邵帅*完成时间&#xff1a;2014年11月5日*版本号&#xff1a;v1.0 */ #in…

st link v2引脚连接_ST-Link资料02_ST-Link固件介绍,及固件命名规则

说明&#xff1a;本文原创作者『strongerHuang』本文首发于微信公众号『嵌入式专栏』&#xff0c;同时也更新在我的个人网站&#xff1a;EmbeddedDevelop一、写在前面一些人可能看了上一篇关于ST-Link的内容&#xff0c;就会产生疑惑。。。ST-Link有那么多硬件版本&#xff0c;…

奇妙的数学动图,美到令人窒息!

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;制造科技原理&#xff0c;版权原作者所有。如有侵权联系删除&#xff01;论文查重券 限时免费领 官方授权 安全保障 真实有效点「在看」的人都变好看了哦

matlab井深测量,一种井深测量系统及方法与流程

本申请涉及钻井技术领域&#xff1a;&#xff0c;尤其涉及一种井深测量系统及方法。背景技术&#xff1a;&#xff1a;在钻井施工中过程中&#xff0c;施工人员需要实时了解井深的变换情况&#xff0c;因此&#xff0c;需要在钻井的过程中实时对井深进行测量。。目前&#xff0…

搞怪菜鸟加入域全程图解[为企业部署Windows Server 2008系列十二]

在前面部署完毕了windows server 2008的服务器。那么现在我们需要考虑的是如何将客户端加入域。很多朋友在企业实际生产环境中经常遇到加入域的问题&#xff0c;那么在windows server 2008 域环境中呢&#xff0c;如何排除这些问题&#xff0c;本次课程就以雷人故事的角度专门为…

怎样让电脑速度变快_硬盘在电脑中起什么作用?

计算机中的所有数据都保存在硬盘上&#xff0c; 很简单&#xff0c;硬盘的作用就是存储数据。一、补充&#xff1a;1、移动硬盘(Mobile Hard disk)顾名思义是以硬盘为存储介质&#xff0c;计算机之间交换大容量数据&#xff0c;强调便携性的存储产品。2、市场上绝大多数的移动硬…

Qualcomm平台camera调试移植入门

2019独角兽企业重金招聘Python工程师标准>>> 1 camera基本代码架构 高通平台对于camera的代码组织&#xff0c;大体上还是遵循Android的框架&#xff1a;即上层应用和HAL层交互&#xff0c;高通平台在HAL层里面实现自己的一套管理策略&#xff1b; 在kernel中实现s…