2022软工K班个人编程任务

Github仓库链接

一、PSP表格

PSP2.1Personal Software Process Stages预估耗时实际耗时
Planning计划3020
· Estimate· 估计这个任务需要多少时间3020
Development开发12501500
· Analysis· 需求分析 (包括学习新技术)560720
· Design Spec· 生成设计文档3020
· Design Review· 设计复审3020
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)3020
· Design· 具体设计3060
· Coding· 具体编码480560
· Code Review· 代码复审3030
· Test· 测试(自我测试,修改代码,提交修改)6060
Reporting报告90120
· Test Repor· 测试报告3060
· Size Measurement· 计算工作量3020
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划3040
合计13701640

二、任务要求的实现

1、项目设计与技术化栈

拿到任务就拆分成两部分,爬取数据和数据可视化。在B站、csdn、黑马程序员看视频,跟着写代码,看了很多资料综合起来、用到的技术栈:requests、re、json、csv、pandas、matplotlib、numpy、BeautifulSoup

2、爬虫与数据处理

list_data = []
for case in caseList:
    item = {}
    item['area']=case['area']   #城市
    item['confirmedRelative']=case['confirmedRelative']  #新增
    item['asymptomaticRelative']=case['asymptomaticRelative']  #新增无症状
    item['confirmed']=case['confirmed'] #累计
    if item['asymptomaticRelative'] == '':  #这里港澳台的数据没有  所以判断为引号的话给它添加为0 方便后面分析
        item['asymptomaticRelative'] = 0
    list_data.append(item)  #把item这个字典添加到列表里面  因为pandas需要列表的数据

本来用BeautifulSoup解析卫健委官网数据,成功提取出关键信息,但是因为反爬系统,偶尔才能爬取出数据,所以改成直接提取百度疫情数据,把json文件转成字典,然后提取里面的数据,利用不同项目名称筛选所需数据,并添加到列表中。最后再利用pandas把数据保存到ex表中。 利用numpy库对提取出的数据进行处理,将处理出的结果利用matplotlib进行可视化分析(本来想用echarts进行大屏可视化分析的)。处理成柱状图。

def bar_one(df):
    df = df.set_index('area')  #设置索引
    df.columns = ['确诊人数','无症状感染']  #给类型
    ax = df.plot.bar()  #bar柱状图
    plt.title('所有省份今日确诊')
    # plt.show()

def bar_two(df):
    df = df.set_index('area')  # 设置索引
    df = df.drop(['台湾','澳门','香港'])
    df.columns = ['确诊人数', '无症状感染']  # 给类型
    df.plot.bar()  # bar柱状图
    plt.title('所有省份今日确诊')
    plt.show()  #显示图片

if __name__ == '__main__':
    # todo  读表
    ex_path = r'C:\Users\Administrator\PycharmProjects\pythonProject\test1\demo_one.xlsx'  # ex表保存的绝对路径
    df = pd.read_excel(ex_path, index_col=False)   #固定写法  把ex表路径传进来  关闭索引
    df.drop(['Unnamed: 0', 'confirmed'], axis=1, inplace=True)   #因为读出来会多一个字段 所以把Unnamed字段删除
    bar(df)  #把df传到bar函数里面
    bar_one(df)  #把df传到bar_one函数里面
    bar_two(df)  #把df传到bar_two函数里面

3、数据统计接口部分的性能改进

请添加图片描述

4、每日热点的实现思路

爬取福建疫情有关内容,把细节展示出来。

5、数据可视化界面的展示

在这里插入图片描述
在这里插入图片描述
因为台湾省的数据实在太大了,导致其他省份不能很好的显示在图表中,所以单独加了一张没有台湾的可视化数据。
在这里插入图片描述

三、心得体会

这次作业太有挑战了,之前没学过python,完全没接触过爬虫之类的,写起来十分痛苦。本来根据教程爬的挺顺利的,结果发现相同代码爬取数据时,有时候报错有时候能爬出所需信息,后面才知道卫健委的反爬系统不是简单加个headers就行的。官网一直动态刷新,cookie只能短时间有效,后面尝试了很多种方法都不行,只能放弃爬取卫健委官网的数据。其他网站爬取过程就很顺利了。进行数据可视化时,本来想用echarts进行大屏显示的,后来发现好像没有这么多数据来处理,就采取了matplotlib进行2D绘图。绘制出来发现确诊人数台湾遥遥领先,其他省份相比都约等于0了。最后基本完成了作业,虽然有好几天从早到晚写代码。写了改,改了删,最后还是挺有成就感的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值