新冠疫情信息获取

新冠疫情信息获取

  • 确定目标网站
  • 数据获取
  • 写入文件
    • 将r.text写入文件
  • 完整源代码
  • 小结
  • 扩展

python是简单易上手的一门语言,可以快速实现简单的爬虫。
我们使用python作为工具

确定目标网站

我从网上找到一个每天更新,并且存有中国所有省市当天和全部新冠病毒感染人数信息的网站。
链接: https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5
新冠疫情信息获取_第1张图片
打开网站,可以看到里面的内容(如上图所示)
这就是我们接下来将要爬取的数据源。

数据获取

你会发现网站里的内容是以json格式储存的纯数据,因此我们只需要使用requests库的get方法,就可以获取网站的数据

  • 导入requests
import requests
  • 确定将要爬取的网站
url = ‘https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5’
  • 使用requests库的get方法,获取网页内容
r = requests.get(url)
  • 查看爬取的数据
#网站的所有信息都储存在r里面,网页上的数据可以用r.text查看
print(r.text)

新冠疫情信息获取_第2张图片
这张图让人眼花缭乱,但仔细看还是能看出来,这就是之前打开网页里的数据。

写入文件

然而这样子只是在内存层面上看到了你从url上爬取的数据,如果仅仅这样做,每次解析数据之前都要进行一次爬取,比较麻烦,也会对网站带来不必要的负担,因此实际情况往往需要把数据写到文件里。

将r.text写入文件

  • 这里导入两个模块,osdatetime,分别对文件写入和文件命名进行处理
import os, datetime
  • 因为爬取的数据是关于中国新冠病毒感染人数的,所以写入的文件应以日期命名
filename = str(datetime.datetime.now().month) +.+ str(datetime.datetime.now().day +.txt’
  • 这里我把文件放到folder文件夹内(你应该改为自己的文件夹)
folder =F:/vscode/cov_visualize/metaData’
  • 储存的文件路径
path = folder +/+ filename
  • 创建文件夹
if not os.path.exists(folder):
 os.mkdir(folder)
  • 数据写到文件内
with open(path, ‘w’) as f:
 f.write(r.text)

完整源代码

import requests, os, datetime
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
r = requests.get(url)

filename = str(datetime.datetime.now().month) + '.' + str(datetime.datetime.now().day) + '.txt'
folder = 'F:/vscode/cov_visualize/metaData'
path = folder + '/' + filename

if not os.path.exists(folder):
   os.mkdir(folder)
# 若文件存在,则删除该文件
if os.path.exists(path):
   os.remove(path)
with open(path, 'w') as f:
   f.write(r.text)

小结

  • 这是一个非常简单的爬虫程序,仅仅实现了获取数据并写入磁盘这两个功能。
  • 最后得到的文件的内容相当于是网页上数据的一份拷贝,可读性很差。
  • 我们需要进一步解析数据,将有用的数据抽取出来。

扩展

如果想要用该程序来获取每天中国的新冠疫情信息,则需要人工每天运行一次该程序,较为麻烦,若想要一劳永逸,则可以添加一个while循环和睡眠函数(time.sleep)来实现控制。

你可能感兴趣的:(新冠疫情信息获取)