Python爬虫——爬取贵州省乡镇级行政区划代码(二)

上节我们已经爬取到想要的数据,但是好学的你肯定不满足于此,数据爬到了,那我们如何将其保存下来呢?接下来,我们将介绍如何把爬到的数据格式化输出并保存。

1.格式化输出

可以看到,我们采集出来的数据是以列表形式输出的,接下来我们将代码和名称分开输出。首先创建两个新空列表,分别用于存放区划代码和名称:

city_id = []
city_name = []
2.装载数据

通过循环分别取出区划代码和名称,并添加到对应列表中:

m = len(citys) #获取原列表长度
while m > 0:
    city_name.append(citys[m-1].string)
    city_id.append(citys[m-2].string)
    # print(citys[m-1].string)
    m = m - 2
3.结构化数据并保存

将列表转化成数据框,这里需要引入pandas模块:

import pandas as pd

# 将列表转化成数据框
city_info = pd.DataFrame({'id': city_id, 'name': city_name, 'url': city_urls})
print(city_info)

# 将数据保存到桌面
city_info.to_csv('C:/Users/SYH/Desktop/city_info.csv', index=False)
4.完整代码
import requests
from bs4 import BeautifulSoup
import pandas as pd

# 目标网页
url_pro = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/41.html'

# 获取响应并解析
res = requests.get(url=url_pro).content
soup = BeautifulSoup(res, 'html.parser')

# 获取数据
citys = soup.select('.citytr a')

# 创建列表以保存数据
city_id = []
city_name = []

# 装载数据
m = len(citys)
while m > 0:
    city_name.append(citys[m-1].string)
    city_id.append(citys[m-2].string)
    # print(citys[m-1].string)
    m = m - 2

# 结构化数据并保存
city_info = pd.DataFrame({'id': city_id, 'name': city_name, 'url': city_urls})
city_info.to_csv('C:/Users/SYH/Desktop/city_info.csv', index=False)

到此,数据的采集过程你已经基本掌握,其间你会发现,单独爬虫的代码没有几行,你甚至可以死记硬背,但是你总不会只是把数据爬出来看看这么简单,肯定是需要将爬出的数据再做更多的处理,例如结构化输出、保存、分析、可视化等等……这些,就得自己去补充了。

数据的处理,着重了解一下pandas及Python的一些语法基础(如循环),要想爬取更多的数据或是元素,还需简单了解一下HTML基础……抛砖引玉,期待你更好的作品!

下节,我们将介绍如何循环采集下一级(县级)数据!

你可能感兴趣的:(Python爬虫——爬取贵州省乡镇级行政区划代码(二))