python - 根据国家/地区名称创建标志 URL 列

标签 python python-3.x pandas url request

我有一个 pandas 列,其中国家/地区名称作为列。

我需要该国家/地区国旗的 PNG url 作为单独的列。美国的 URL 如下所示,

https://upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/1280px-Flag_of_the_United_States.svg.png

我怎样才能实现同样的目标。

这是我的数据框,其中包含国家/地区名称。

0                           Afghanistan
1                               Albania
2                               Algeria
3                               Andorra
4                                Angola
5                   Antigua and Barbuda
6                             Argentina
7                               Armenia
8                             Australia
9                               Austria
10                      Austria-Hungary
11                           Azerbaijan
12                              Bahamas
13                              Bahrain
14                           Bangladesh
15                             Barbados
16                              Belarus
17                              Belgium
18                               Belize
19                                Benin
20                               Bhutan

.......
.......
Name: Entity, dtype: object

最佳答案

因此,查看维基百科中的标志链接,它们的网址似乎没有统一的格式,因此您无法仅迭代国家/地区列表来创建该列。

您最好的选择是简单地抓取维基百科并将您的国家/地区列表迭代到基本文件:标志页面中。像这样的事情:

import requests
from bs4 import BeautifulSoup

for item in df['Country']:
    url = 'https://en.wikipedia.org/wiki/File:Flag_of_'+str(item)+'.svg'
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'lxml')
    df['Flag_Link'] = soup.find('span', {'class':'mw-filepage-other-resolutions'}).findAll('a')[3]['href']

我假设您想要 1280X853 链接,即 [3] 范围。如果您有任何疑问,请告诉我。

关于python - 根据国家/地区名称创建标志 URL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314289/

相关文章:

python - python 中的条件替换和嵌套 for 循环

python - pandas 未在 pyCharm 中显示输出,但在 google colab 中显示

python - Pandas 数据帧列中值的最大差异

python - 如何跨子图添加层次轴以标记组?

python-3.x - 导入错误 : No module named 'PyQT5' Ubuntu 16. 10

python - boolean 值不在Python中

python - 查找字符后的所有数字,以逗号分隔

Python - 以高性能序列化数据的最佳方式?

python - 为什么我的代码在 Python Regex 的返回值中不起作用

python - 以最佳方式从字典中删除所有值