简单爬取奥运奖牌榜

场景介绍

  • 数据截止于2021-07-31
  • 使用urllib库爬取东京奥运会奖牌榜
  • 使用pandas库快速导入、处理网页中的表格
  • 查看奖牌榜网址(url=‘https://olympics.com/tokyo-2020/olympic-games/zh/results/all-sports/medal-standings.htm’)

实例环境及工具

  • Python开发环境、Jupyter notebook编辑器
  • urllibs是python自带的库
  • pandas库需要自行安装pip install pandas

爬取奖牌榜

  1. 导入相关库

    import pandas as ps
    from urllib import request
    
  2. 获取网页页面

    url = 'https://olympics.com/tokyo-2020/olympic-games/zh/results/all-sports/medal-standings.htm'
    page1 = request.urlopen(url)
    
  3. 读取网页数据

    html = page1.read()
    print(html)
    

    在这里插入图片描述

  4. 读取表格数据

    df = pd.read_html(html)[0] # 转换成Pandas数据
    df1 = df[:10] # 仅查看排名前十
    df1
    

    在这里插入图片描述

  5. 转换嵌套字典

    df1.T.to_dict().values()   # 转换成嵌套字典的格式
    

    在这里插入图片描述

代码汇总

	import pandas as pd
	from urllib import request
	url = 'https://olympics.com/tokyo-2020/olympic-games/zh/results/all-sports/medal-standings.htm'
	page = request.urlopen(url).read() # 获取网页
	df = pd.read_html(page)[0] # 转换成Pandas数据
	df1 = df[:3] # 仅查看排名前三
	list(df1.T.to_dict().values())   # 转换成列表嵌套字典的格式
[{'排名': 1,
  '国家奥委会': '中国',
  'Unnamed: 2': 22,
  'Unnamed: 3': 13,
  'Unnamed: 4': 12,
  '总分': 47,
  '按总数排名': 2,
  '国家奥委会代码': 'CHN'},
 {'排名': 2,
  '国家奥委会': '美国',
  'Unnamed: 2': 19,
  'Unnamed: 3': 20,
  'Unnamed: 4': 13,
  '总分': 52,
  '按总数排名': 1,
  '国家奥委会代码': 'USA'},
 {'排名': 3,
  '国家奥委会': '日本',
  'Unnamed: 2': 17,
  'Unnamed: 3': 5,
  'Unnamed: 4': 8,
  '总分': 30,
  '按总数排名': 5,
  '国家奥委会代码': 'JPN'}]

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BuerYouth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值