前言
本次爬虫爬取福建省疫情情况,涉及库requests、xlwt、matplotlib,爬取的只是包含相应数据的html网站,而像股票等实时数据,其网址源码不包含数据,一般都保存在js文件里。
一、环境配置
1.安装python
2.安装pycharm
3.配置相应的库
1、打开pycharm:
2、
3、
4、
如果安装库报错:pycharm安装库报错,cmd安装库,镜像源
二、代码
先创建一个新py文件
1.引入库
代码如下:
import matplotlib.pyplot as plt
import requests
import xlwt
2.读入数据
代码如下:
url = "https://lab.isaaclin.cn/nCoV/api/area" #爬取的网页的网址
epi_data = [] #用于存储数据
def get_Data():
req = requests.get(url).json() #请求网页,获得数据
for item in req['results']:
if item['provinceName'] == "福建省": #源码中福建省的疫情情况
for obj in item['cities']:
#列表中加入超市和疫情人数
epi_data.append([obj['cityName'], obj['confirmedCount']]) return epi_data
#画图
def draw_chart(x_data, y_data):
plt.figure(figsize=(9, 6))
# 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.title('福建省疫情情况')
item = plt.bar(x_data, y_data) #生成柱状图
#相应柱状图上标记数据
for rect in item:
height = rect.get_height() # 获取高度
plt.text(x=rect.get_x() + rect.get_width() / 2, # 水平坐标
y=height + 0.7, # 竖直坐标
s=height,
ha='center') # 水平居中
plt.show() #显示柱状图
plt.savefig('c:\\福建省疫情情况.png') #保存成png图片
#保存数据到Excel文件
def ExcelWrite(x_data, y_data):
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding='utf-8')
# 创建一个worksheet
worksheet = workbook.add_sheet('福建省疫情情况', cell_overwrite_ok=True)
# 写入excel
# 参数对应 行, 列, 值
for i in range(0, 10):
worksheet.write(0, i, label=x_data[i])
worksheet.write(1, i, label=y_data[i])
# 保存
workbook.save('c:\\福建省疫情情况.xls')
if __name__ == '__main__':
epi_data = get_Data()
data = dict(epi_data) #将列表转化为字典
x_data = list(data.keys())
y_data = list(data.values())
ExcelWrite(x_data, y_data)
draw_chart(x_data, y_data)
3.运行结果
draw_chart()函数运行的结果:
生成的excel文件: