国家统计局统计用区划代码和城乡划分代码爬虫-(一)页面分析

本文详细分析了国家统计局统计用区划代码和城乡划分代码爬虫的实现过程,这是第一篇,首先先分析一下页面,为后面的页面解析做准备。

详细的代码开源在GitHub上:NBSPRC-spider


这里我就拿2016年的页面做下分析:2016年统计用区划代码和城乡划分代码(截止2016年07月31日)

一、省级页面分析

1、省级信息提取

我们进入到2016年统计用区划代码和城乡划分代码(截止2016年07月31日)这个页面,然后用chrome的“检查”工具看下我们要找的信息在哪。

这里我们需要爬取省级名称、省内市级信息的子链接这两个参数。

我们从图中可以发现,左边页面每一行对应的XPath路径为:

1
//tr[@class="provincetr"]

然后一行中每个省的信息在下一级的td标签内:

1
2
td/a/text()
td/a/@href

2、下级链接获取

省级页面的URL:

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html

下级页面的URL(我这里以浙江省为例):

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33.html

页面中提取到的信息(我这里以浙江省为例):

1
33.html

所以我们可以通过如下方式获取真实的URL保存到一个列表中:

1
2
3
url = "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html"
# provinceLink = "33.html"
provinceURL = url[:-10] + provinceLink

二、市级页面分析

1、市级信息提取

我们进入到浙江省中。具体的分析跟上面的省级页面分析类似,不再赘述。下面是市级页面分析图:

2、下级链接获取

市级页面的URL:

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33.html

下级页面的URL(我这里以杭州市为例):

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33/3301.html

页面中提取到的信息(我这里以杭州市为例):

1
33/3301.html

三、区级页面分析

1、区级信息提取

我们进入到杭州市中。具体的分析跟上面的省级页面分析类似,不再赘述。下面是区级页面分析图:

2、下级链接获取

区级页面的URL:

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33/3301.html

下级页面的URL(我这里以上城区为例):

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33/01/330102.html

页面中提取到的信息(我这里以上城区为例):

1
01/330102.html

四、街道页面分析

1、街道信息提取

我们进入到上城区中。具体的分析跟上面的省级页面分析类似,不再赘述。下面是街道页面分析图:

2、下级链接获取

街道页面的URL:

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33/01/330102.html

街道页面的URL(我这里以湖滨街道为例):

1
http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/33/01/02/330102003.html

页面中提取到的信息(我这里以湖滨街道为例):

1
02/330102003.html

五、居委会页面分析

1、居委会信息提取

我们进入到湖滨街道中。具体的分析跟上面的省级页面分析类似,不再赘述。下面是居委会页面分析图:

这里已经到了最底层,没有下级链接了。

赞赏一杯咖啡
0%