前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >世界杯可视化 之 国家地区国旗

世界杯可视化 之 国家地区国旗

作者头像
btharp
发布2022-12-01 10:14:45
6990
发布2022-12-01 10:14:45
举报
文章被收录于专栏:PowerBI x PythonPowerBI x Python

再过几个小时,四年一度的世界杯揭幕战就要打响了。个人认为本届世界杯的视觉设计,比2010南非、2014巴西和2018俄罗斯都要好看。时尚大气,又有不少异域的元素。

相信不少读者朋友已经迫不及待想用Power BI做一些可视化的东西。我这就抢先助攻一波:

向公众号发消息【国旗】,即可获得全球211个国家地区的国旗区旗、卡塔尔世界杯IP指南

这套材料包含了:

  1. 卡塔尔世界杯IP指南
  2. SVG格式国旗
  3. AI格式国旗
  4. PNG格式3种大小尺寸(2048px、256px和64px)的国旗区旗
  5. 各国国旗URL列表

那么参考以下3篇推文,你就可以轻松地在Power BI上进行国旗区旗可视化啦。

  1. PowerBI图片用法综述
  2. 一键解决Power BI本地图片显示问题
  3. Power BI图片控件介绍

-----------------------------------------------------------------------------

国旗图片来源这个网站:https://flagdownload.com/

点击图标进去,可以看到有丰富的格式可供下载。

为了给大家准备这份资料,我点了211*6=1266次鼠标

借助Python的BeautifulSoup库,可以轻松地下载所需的图片。核心代码如下,第一部分,先遍历获得国家页面的URL。

代码语言:javascript
复制
import requests    
import pandas as pd 
import numpy as np
from bs4 import BeautifulSoup

#%% 遍历获取每个国家页面的url
main_url="https://flagdownload.com/page/"
href=[]
country=[]

for j in range(6):  # 页数
    try:
        res = requests.get("https://flagdownload.com/page/"+str(j+1)+"/") #模拟get请求获取链接返回的内容
        soup = BeautifulSoup(res.text, 'html.parser')#前面已经介绍将html文档格式化为一个树形结构,每个节点都是一个对python对象,方便获取节点内容        
        articles=soup.find_all("article") # 解析为每个国旗记录的列表

        for k in range(0,len(articles)):  
            tr=articles[k]
            href.append(tr.find("a")["href"])
            country.append(tr.find("h2").get_text())

    except:
        pass
        
        
# 创建国家列表
df=pd.DataFrame({"country":country,"url":href})

第二部分,再从国家地区页面进去解析下载所需的图片

代码语言:javascript
复制
for j in range(df.shape[0]):  # 遍历国家
    
    country_url=df['url'].iloc[j]
    country_name=df['country'].iloc[j]
    res = requests.get(country_url) #模拟get请求获取链接返回的内容
    soup = BeautifulSoup(res.text, 'html.parser')#前面已经介绍将html文档格式化为一个树形结构,每个节点都是一个对python对象,方便获取节点内容        

    try:
        # svg格式
        svg_url=soup.find(lambda elm: elm.name == "a" and "SVG" in elm.text)['href']
        r=requests.request('get',svg_url)
        with open(svg_path+"/" + country_name +'.svg','wb') as f:
            f.write(r.content)        
    except:
        pass
        
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI x Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档