爬取新冠肺炎疫情最新情况的爬虫
大家好,今天闲来无事,就想刷刷疫情情况,就自己做了个可以查询到市的爬虫,{:10_279:}{:10_279:}{:10_279:}疫情期间,大家可以光明正大的宅在家里做贡献了,{:10_256:}
代码只用了requests和json库:
**** Hidden Message ***** 非常好,已收藏! 本帖最后由 烟肖雨晨 于 2020-2-19 15:26 编辑
呼叫作者{:5_108:}呼叫作者!
本人萌新发现了一个能更好完善的地方{:10_257:}:
按理来说,如果用户查询了一些特定的省级行政区(例如香港,没有市级行政区,即r['cities']==[]),那么这个时候输入Y(yes)是正常显示的,则提示不支持查看下辖区情况;但是如果这个时候输入N(no)是一点小问题的。用户输入了不查看,但是不支持查看下辖区情况还是会提示给用户。(31——35行代码,即那个判断语句)
if a == 'Y' or a == 'y' and r['cities'] != []:
for i in r['cities']:
print('%s累计确诊病例%d例,现有确诊%d例,现有疑似患者%d例,\n累计治愈出院%d例,累计死亡病例%d例。\n====================================' % ((i['cityName']+'市',)+get_info(i)))
elif r['cities'] == []:#如果用户选择不查询香港下面的市级行政区(香港是没有下辖区的),那么上面那个判断语句没有全部满足条件,就来到了此处。来到此处后马上又满足了条件,所以即使用户输入不查询这条提示也会跳出来
print('抱歉,该省份暂不支持查看下辖区情况。')
用户在不需要进行查询下辖区的情况下,不应提示给用户不支持查看,应该照常回到那个循环中。所以我认为这个判断语句可以这样改:
if a == 'Y' or a == 'y':#分离了那一条长的判断语句,可以保证n则重新循环;y则进入如下判断
if r['cities'] != []:#如果用户既想查看,又能查找到,就进行输出
for i in r['cities']:
print('%s累计确诊病例%d例,现有确诊%d例,现有疑似患者%d例,\n累计治愈出院%d例,累计死亡病例%d例。\n====================================' % ((i['cityName']+'市',)+get_info(i)))
else:#如果用户想查看,但不能查找到,这时才提示用户
print('抱歉,该省份暂不支持查看下辖区情况。')
作者的这个爬虫写得很好,已收藏学习。本人的观点可能有不足之处,敬请批评指正{:10_281:} 能告诉我怎么在手机上运行的吗? _2_ 发表于 2020-2-19 17:57
能告诉我怎么在手机上运行的吗?
下载pydroid 3 和一个数据包,就可以了, 烟肖雨晨 发表于 2020-2-19 15:19
呼叫作者呼叫作者!
本人萌新发现了一个能更好完善的地方:
按理来说,如果用户查询 ...
多谢指正,都没有消息通知,现在才看到,{:10_256:}
你的意见挺不错,我的解决方案是,
在输入了NO后,直接结束函数,
if a == 'Y' or a == 'y' and r['cities'] != []:
for i in r['cities']:
print('%s累计确诊病例%d例,现有确诊%d例,现有疑似患者%d例,\n累计治愈出院%d例,累计死亡病例%d例。\n====================================' % ((i['cityName']+'市',)+get_info(i)))
elif a=='n' or a=='N':
return
print('抱歉,该省份暂不支持查看下辖区情况。')
这样就可以解决了{:10_279:} 拉了盏灯 发表于 2020-2-20 21:26
多谢指正,都没有消息通知,现在才看到,
你的意见挺不错,我的解决方案是,
在输入了NO后, ...
代码很简洁,不愧是大佬{:10_254:} Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/python练习/爬取新冠肺炎疫情最新情况.py", line 71, in <module>
main()
File "C:/Users/Administrator/Desktop/python练习/爬取新冠肺炎疫情最新情况.py", line 56, in main
r['confirmedIncr'],
KeyError: 'confirmedIncr'
Process finished with exit code 1
为什么我现在运行会报错,之前运行都是对的
页:
[1]