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

2022-12-01 10:14:45 浏览数 (1)

再过几个小时,四年一度的世界杯揭幕战就要打响了。个人认为本届世界杯的视觉设计,比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
        

0 人点赞