山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据

使用Python爬取全球新冠肺炎疫情数据
导入所需库包
获取实时数据的url
正式编写程序
查看输出结果
导入所需库包
在获取数据以前,咱们须要先安装好所需的包requests和pandas:
1.若是是使用pycharm能够直接使用File->Settings->Project->Project Interpreter->选择“+”->在搜索栏内输入须要下载的包python

山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据

在这里我已经安装好了pandas和requests,但须要注意的是在安装pandas是系统会自动下载好另外两个包python-dateutil和numpy,这里面咱们不用去管他。
出错的看这里!
当时我觉得已经下好了pandas可是在敲代码时候又报错了,解决方法以下:
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据
出现这个问题实际上是pandas版本和python版本不兼容,我又换了一个版本pandas1.0.1就能够了。咱们须要先将pandas删除,在点击加号在下面有一个,如图,将版本降下来就能够啦。
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据
2.若是使用cmd去装python包也能够,只须要找好路径:
先找到当时的下载位置
(这是我电脑中的安装位置,打开到Scripts这个文件夹)
(速度比较慢,当时我下的时候只有4KB,不知道为何这么慢)
C:\Users\A\AppData\Local\Programs\Python\Python38\Scripts
cd C:\Users\A\AppData\Local\Programs\Python\Python38\Scripts
pip install pandas
pip install requests
若是你以前装过可是因为各类缘由,必定要先把他删掉
pip unstall pandas 再从新操做。
获取实时数据的url
在获取的时候,最好选用火狐浏览器,我这里用的是火狐,由于都是中文的,找起来比较方便。
如今在浏览器上复制下面的连接,点击右键检查元素
https://news.qq.com/zt2020/page/feiyan.htm#/global?pool=bj
与咱们以前查找字段的方式不一样,由于动态数据只能在json可以找到,只是查看代码是不够的。咱们须要用另外一种方式专门适用于爬取动态数据。
找到“网络”,并刷新一下,就会发现ranklist,双击点进去,咱们就能看到一个动态数据列表,下面的任务就是根据url按照字段写进去。
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据
正式编写程序
将ranklist的请求地址复制下来,以后就能够开始编写咱们的python程序了。json

import requestsimport jsonimport pandas as pd//将pandas包用别名pd表示
url='https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'//刚才复制的url地址
r=requests.get(url)//用requests获取地址
content=json.loads(r.text)//将全部json数据转化为数据字典的形式123456

这个时候能够在屏幕中看到获取来的数据,使用一行代码
print(content)print(type(content))//咱们也能够查看它如今的数据类型<dict>就表明数据字典的形式12
下面咱们对数据进行处理。每一列的顺序能够随便写,但必定要队形数组下标的字段,咱们能在响应里面找到json数组的相应字段。
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据api

df=pd.DataFrame(columns=['国家和地区','所属洲','日期','今日新增病例','确诊人数','疑似病例','死亡病例','治愈病例'])for i in range(len(content['data'])):
    df.loc[i+1]=[content['data'][i]['name'],
                 content['data'][i]['continent'],
                 content['data'][i]['date'],
                 content['data'][i]['confirmAdd'],
                 content['data'][i]['confirm'],
                 content['data'][i]['suspect'],
                 content['data'][i]['dead'],
                 content['data'][i]['heal']]12345678910

因为数据量很是的大,咱们也能够字段关键字查找,代码以下:数组

print(df[0:1])
    df2=df[df['国家和地区'].isin(['新加坡'])]
    print(df2)123

查看输出结果
当前我只在控制屏中进行输出,固然也能够把他保存到csv中,下面是运行截图:
山东创睦网络科技有限公司:使用Python爬取全球新冠肺炎疫情数据
这样子一个简单的动态数据爬取就完成了,有没有感受很容易呢?浏览器

相关文章
相关标签/搜索