Python 爬取东京奥运会奖牌榜!中国原来这么厉害!
发布时间
阅读量:
阅读量
需求分析
我们要爬取的是 2020东京奥运会奖牌榜。
(截至 2021/8/2 下午 17:30)

右键单击网页,选择“检查”,调出开发者界面。然后点击右侧选项卡中的“网络”。

刷新网页,再出现的网络活动中寻找包含奥运会奖牌榜的活动。

点击“标头”,查看请求信息。


请求 url:https://api.cntv.cn/olympic/getOlyMedals
请求方式:get
开始爬取
import requests
url = 'https://api.cntv.cn/olympic/getOlyMedals'
params = {
'serviceId': 'pcocean',
'itemcode': 'GEN-------------------------------',
't': 'jsonp',
'cb': 'banomedals'
}
json = requests.get(url, params=params).json()
print(json)
但是我们会发现报错:

原因是解析 json 数据错误。说明我们获取到的并不是json格式信息。
打印出来看一下:

检查请求信息是否有误。
经过检查,我们发现请求信息中的 t 项和 cb 项去掉后就不会发生此错误。于是我们将 t: jsonp 和 cb: banomedals 这两项去掉。
更正后的版本:
import requests
url = 'https://api.cntv.cn/olympic/getOlyMedals'
params = {
'serviceId': 'pcocean',
'itemcode': 'GEN-------------------------------',
}
json = requests.get(url, params=params).json()
print(json)

然后,我们从得到的信息中获取我们需要的信息:
result = json['data']['medalsList']
for r in result:
print(r['rank'],
r['countryname'].ljust(10),
'金' + r['gold'],
'银' + r['silver'],
'铜' + r['bronze'],
'总' + r['count'])
成果:

成功!
点个赞,为中国运动员喝彩吧!
推荐阅读
yeanky
2021/7/27
全部评论 (0)
还没有任何评论哟~
