根据国家/地区名称创建标志网址列

时间:2019-05-26 14:14:45

标签: python python-3.x pandas url request

我有一列以国家/地区名称作为名称的熊猫。

我需要该国家/地区标志的PNG网址作为单独的列。美国的网址如下所示

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 个答案:

答案 0 :(得分:2)

因此,在Wikipedia中查找标志链接,看起来它们的网址似乎没有统一的格式,因此您将无法仅遍历“国家/地区”列表来创建列。

您最好的选择是简单地刮一下Wikipedia并将您的国家/地区列表复制到基本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]跨度。如果您有任何问题,请告诉我。