2020年肺炎病毒的爬虫(python)

2020年初,我国武汉爆发了恐怖肺炎病毒,接着全国陆陆续续也传染了起来,弄得人心惶惶,闭门不出。

看了太多武汉相关的视频,心中感慨万分,只想献上一份非常普通的——2019-nCoV病毒。

此前,先献上来自于百度百科的资料

12019新型冠状病毒,即“2019-nCoV”, 22019年武汉病毒性肺炎病例而被发现,2020112日被世界卫生组织命名。 3冠状病毒是一个大型病毒家族,已知可引起感冒以及中东呼吸综合征(MERS)和严重急性呼吸综合征(SARS)等较严重疾病。 4新型冠状病毒是以前从未在人体中发现的冠状病毒新毒株。 5201912月以来,湖北省武汉市持续开展流感及相关疾病监测,发现多起病毒性肺炎病例,均诊断为病毒性肺炎/肺部感染。 6人感染了冠状病毒后常见体征有呼吸道症状、发热、咳嗽、气促和呼吸困难等。 7在较严重病例中,感染可导致肺炎、严重急性呼吸综合征、肾衰竭,甚至死亡。 8目前对于新型冠状病毒所致疾病没有特异治疗方法。 9但许多症状是可以处理的,因此需根据患者临床情况进行治疗。 10此外,对感染者的辅助护理可能非常有效。 11做好自我保护包括: 12 保持基本的手部和呼吸道卫生, 13 坚持安全饮食习惯, 14 并尽可能避免与任何表现出有呼吸道疾病症状(如咳嗽和打喷嚏等)的人密切接触。 15 16
1 2# 2019-nCoV 爬虫 3import requests 4 5import time 6import re 7import os 8 9def getHtml(): 10 # 请求、return html 11 url = 'https://3g.dxy.cn/newh5/view/pneumonia?scene=2&clicktime=1579579384&enterid=1579579384&from=groupmessage&isappinstalled=0' 12 response = requests.get(url) 13 response.encoding = 'utf-8' 14 html = response.text 15 return html 16 17def clear(html): 18 # 过滤、return data 19 req1 = r'{"id":.*?,"createTime":.*?,"modifyTime":.*?,"tags":"(确诊 .*?)","countryType":.*?,"provinceId":".*?","provinceName":".*?","provinceShortName":"(.*?)","cityName":"","confirmedCount":.*?,"suspectedCount":0,"curedCount":(.*?),"deadCount":(.*?),"comment":".*?","sort":.*?,"operator":".*?"}' 20 req2 = r'{"id":.*?,"createTime":.*?,"modifyTime":.*?,"tags":"(确诊 .*?)","countryType":.*?,"provinceId":".*?","provinceName":".*?","provinceShortName":"(.*?)","cityName":"","confirmedCount":.*?,"suspectedCount":0,"curedCount":(.*?),"deadCount":(.*?),"comment":".*?","sort":.*?,"operator":".*?"}' 21 old_data = re.findall(req1,html,re.S) # 简单信息、省份、治疗人数,死亡人数 22 data = [] 23 for item in old_data: 24 # 数据重整 25 data.append( [ item[1],item[0].split(','),item[2],item[3] ] ) 26 # print(data) 27 # [ '湖北', ['确诊 444 例', '疑似病例数待确认', '治愈 28 例', '死亡 17 例'], '90', '162' ] 28 return data 29 30def showAndSave(data): 31 # 当前时间 32 year = time.localtime(time.time()).tm_year 33 mouth = time.localtime(time.time()).tm_mon 34 day = time.localtime(time.time()).tm_mday 35 hour = time.localtime(time.time()).tm_hour 36 min = time.localtime(time.time()).tm_min 37 sec = time.localtime(time.time()).tm_sec 38 now = str(year) + '年' + str(mouth) + '月' + str(day) + '日' 39 full_now = now + ' ' + str(hour) + ':' + str(min) + ':' + str(sec) 40 print('\n\n日期:\t' + full_now + '\n') 41 # 创建/打开 文件夹 42 if not os.path.exists('2019-nCoV'): 43 os.mkdir('2019-nCoV') 44 os.chdir('2019-nCoV') 45 # 打印/写入一段话 46 myword = '2020年,艰难的一天到了,但病毒不能难倒我们中国人,艰苦的一天终有一天会过去,胜利即将到来。同志们,准备迎接满地春风的那一天吧。\n武汉加油,中国加油!!!!' 47 if not os.path.exists('##武汉加油,中国加油.txt'): 48 with open('##武汉加油,中国加油.txt','w') as f: 49 f.write(myword) 50 print ('\t' + myword + '\n' ) 51 # 打印/写入文件 52 mystr = '' 53 for item in data: 54 # print(item) 55 # '\n\t' + item[1][2] + '\n\t' + item[1][3] + 56 mystr += item[0] + '\n\t' + item[1][0] + '\n\t治疗人数 ' + item[2] + ' 人 \n\t死亡人数 ' + item[3] + ' 人\n' 57 print( mystr ) 58 with open(now + '.txt','w') as f: 59 f.write(full_now + '\n\n' +mystr) 60 61if __name__ == "__main__": 62 html = getHtml() 63 data = clear(html) 64 # [ '湖北', ['确诊 444 例', '疑似病例数待确认', '治愈 28 例', '死亡 17 例'], '90', '162' ] 65 showAndSave(data) 66 67

代码交流 2021