抓取新冠肺炎数据

爬虫Demo——抓取新冠肺炎数据

简介

  • 使用Python的requests模块请求数据
  • re正则匹配所需数据信息
  • pandas模块保存信息
  • json模块对数据解码
  • 数据来源:丁香医生疫情实时动态

代码分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import re
import requests
import json
import pandas as pd
from datetime import datetime

data_url = 'https://ncov.dxy.cn/ncovh5/view/pneumonia'
page = requests.get(data_url).content.decode("utf-8") # 抓取页面数据并解码
# print(page)

# 观察数据,通过正则表达式匹配所需信息
regex = '<script id="getListByCountryTypeService2">([^<]+)' # 匹配全球肺炎信息
data = re.findall(regex, page)
data = data[0][43:-11] # 截取json格式的数据 [{},{}],截取范围可以通过len()函数确定
# print(data)

data = json.loads(data) # 解析json页面,将json字符串转换为list与dict
# print(data)

# 转换时间戳
for row in data:
for k in row:
if k in ['createTime','modifyTime']:
row[k] = datetime.fromtimestamp(row[k]/1000).strftime("%Y-%m-%d")

# 使用pandas模块保存数据
# DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表
data = pd.DataFrame(data) # 由于我们的数据是严格的字典列表形式,可以不设置行列索引,pandas会自动解析
data.to_csv("新冠肺炎数据.csv",mode='a') # 追加存储

爬取结果

  • 接下来我们可以通过python的数据分析模块进一步分析数据!
------ ���Ľ���------