Создайте столбец URL флага на основе названия страны - PullRequest
1 голос
/ 26 мая 2019

У меня есть столбец панд с названиями стран в качестве столбца.

Мне нужен 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

1 Ответ

2 голосов
/ 26 мая 2019

Так что, глядя на Википедию для ссылок на флаги, не похоже, что существует унифицированный формат для их URL, поэтому вы не сможете просто перебрать свой Список стран для создания столбца.

Лучше всего было бы просто почистить Википедию и перебрать список своих стран на базовой странице File: Flag. Примерно так:

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]. Дайте мне знать, если у вас есть какие-либо вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...