使用python简单获取新冠肺炎数据,并进行本地保存
使用 Python 获取新冠肺炎数据,并进行本地保存
目标网站: https://news.qq.com/zt2020/page/feiyan.htm#/
实现:获取网站中湖北(其他地区同理)疫情感染人数
1 网站分析
网站中的数据加载通常有两种加载形式:动态与静态,打开浏览器的开发者平台( F12 ,推荐 chrome 浏览器),选择 network中的 XHR ,查看网站中的数据加载项 :
找到湖北
选择最后一个加载项,打开可以发现文件中的信息为所需要获取的数据,通过与网页中的数据对比可以发现为湖北的数据。
选择 headers 查看数据项的具体信息。
http 请求为 POST 请求,参数为 province ,对应的 url 为 https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=%E6%B9%96%E5%8C%97&city=%E6%AD%A6%E6%B1%89&
url 最后类似于乱码形式的字符串为国家名转码以后的文本。如果需要获取其他国家的数据,只需要将 url 变为https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=国家名称 & 即可, 在拼接时无法使用中文,可以使用 quote 方法进行转码。
2 数据获取
使用 requests 模块模拟浏览器获取数据。
requests 模块是 Python 中的 http 请求库,使用简单且功能强大。需要进行安装。
1、首先,需要安装python的时候勾选pip并下载requests包(地址:https://github.com/requests/requests)
2、然后运行cmd,输入pip install requests
这里如果报错,说找不到pip的话,先去python的scripts文件下看看有没有pip.exe,如果有,那就去系统的高级设置中,添加环境变量到PATH路径中,这里需要添加python本身的文件路径,还需要添加scripts的文件路径进去。然后再去cmd中install requests就好。其他按照提示来就行。
-url :服务器对应的地址。
-data :请求时携带的数据。
-headers : HTTP 请求中 headers 字段。
-proxies :设置代理 IP 地址
疑似病例中都为零,所以没有意义(实际中不可能都为 0 ),需要删除。而新增病例中存在一个 0 (此处的 0 可能是因为当日没有结束,所以暂不统计),但是我们可以根据当前病例数减去昨日病例进行计算,所以此处也进行删除。
- 点赞
- 收藏
- 关注作者
评论(0)