再过几个小时,四年一度的世界杯揭幕战就要打响了。个人认为本届世界杯的视觉设计,比2010南非、2014巴西和2018俄罗斯都要好看。时尚大气,又有不少异域的元素。
相信不少读者朋友已经迫不及待想用Power BI做一些可视化的东西。我这就抢先助攻一波:
向公众号发消息【国旗】,即可获得全球211个国家地区的国旗区旗、卡塔尔世界杯IP指南
这套材料包含了:
- 卡塔尔世界杯IP指南
- SVG格式国旗
- AI格式国旗
- PNG格式3种大小尺寸(2048px、256px和64px)的国旗区旗
- 各国国旗URL列表
那么参考以下3篇推文,你就可以轻松地在Power BI上进行国旗区旗可视化啦。
- PowerBI图片用法综述
- 一键解决Power BI本地图片显示问题
- 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