爬虫爬取疫情情况案例,画图并保存相应数据到excel文件(零基础入门)


前言

本次爬虫爬取福建省疫情情况,涉及库requests、xlwt、matplotlib,爬取的只是包含相应数据的html网站,而像股票等实时数据,其网址源码不包含数据,一般都保存在js文件里。


一、环境配置

1.安装python

python官网

2.安装pycharm

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文件:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zensaan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值