风萧萧兮易水寒

Python爬取全球疫情Demo

前言

仅仅学习而已,不做其他非法操作.
习惯用小demo来熟练各种方法与技巧

分析

进入腾讯新闻找到疫情入口
https://news.qq.com/zt2020/page/feiyan.htm#/global
然后F12分析接口.
这对于java老鸟来说,分分钟找到.

https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist

然后分析json,取什么值, 用什么.

撸代码

装工具

由于是从0开始学的python,所以什么也没有,
只有一个python环境,所以直接来到jb家jetbrains,撸一个pycharm, 用过idea的都知道,直接和idea安装方式一样,一毛一样!!!

hello

进来不多说, 一个hello例子必须要有

# @Author: GMaya
print('hello word!')

右键执行

导包

想要访问互联网, 你不得一个requests请求么?
刚好,导入这个
python安装目录 –> Scripts 包下,进入cmd
输入

pip install requests

等待安装完成!
然后在ide里面设置引入

访问接口

# @Author: GMaya
import requests

# 创建会话对象
session = requests.session()
# 请求接口
result = session.get('https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist')
# 打印结果
print(result.text)


握草,真是方便快捷狠啊

走一步学一部,看下这个requests包是啥

Requests为Python处理了所有HTTP/1.1操作, 与Web服务的无缝集成。不需要为URL手动添加查询字符串或POST数据进行表单处理。基于urllib3, 能自动处理Keep-alive和HTTP连接池。

此处 自行百度学习了小半个小时,以后用到复杂的再说.

处理结果

# @Author: GMaya
import requests, json, jsonpath

# 创建会话对象
session = requests.session()
# 请求接口
result = session.get('https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist')
# 打印结果
print(result.text)
# 解析json结果
resJson = json.loads(result.text)
data = jsonpath.jsonpath(resJson, '$.data.*')
for d in data:
    res = '日期:' + d['date'] + '--' + d['continent'] + '--' + d['name'] + '--' + '新增确诊:' + str(
        d['confirmAdd']) + '累计确诊:' + str(d['confirm']) + '治愈:' + str(d['heal']) + '死亡:' + str(d['dead'])
    # 保存数据到我的d盘
    file = 'D:\download\global-yq.txt'
    with open(file, 'a+',encoding='utf-8') as f:
        f.write(res + '\n')  # 加\n换行显示


结果已经保存到本地文本里面了.
有不懂的命令直接文档里面找,还是很容易的
文档连接

坚持原创技术分享,您的支持将鼓励我继续创作!