相关介绍
- Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
- Requests是一个很实用的Python HTTP客户端库。
- Pandas是一个Python软件包,提供快速,灵活和可表达的数据结构,旨在使结构化(表格,多维,潜在异构)和时间序列数据的处理既简单又直观。
- Time是python标准库,无需额外下载,主要用于处理时间问题。
- 实验目标:Python+requests爬取疫情数据
实验环境
- Python 3.x (面向对象的高级语言)
- Resquest 2.14.2 (python第三方库)
- Pandas 1.1.0(python第三方库)
- Time (python标准库)
具体步骤
目标网站
https://www.ncovchina.com/data.html
分析网站
代码实现
# -*- coding: utf-8 -*-
"""
@author: TFX
"""
import time
import requests # 请求库
import pandas as pd
# 日期
today = time.strftime('%Y{y}%m{m}%d{d}',time.localtime()).format(y='年',m='月',d='日')
# 网址
url = 'https://arena.360.cn/api/service/data/ncov-live-3'
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
}
# 发送请求
response = requests.get(url=url,headers=headers)
# print(response)
# 得到相应的json数据
json = response.json()
# 数据列表
city = []
diagnosed = []
suspected = []
cured = []
#print(json)
if json.get('data'):
for item in json.get('data')['detail']:
# print(item)
# 地区
city.append(item['city'])
diagnosed.append(item['diagnosed'])
suspected.append(item['suspected'])
cured.append(item['cured'])
# 利用pandas保存文件
df = pd.DataFrame()
df['城市'] = city
df['确诊'] = diagnosed
df['疑似'] = suspected
df['治愈'] = cured
df.to_csv(today+'全国疫情数据.csv',mode='w',index=None,encoding='gbk')
print('保存完成!')
输出结果