从Wikipedia中的“ infobox地理vcard”解析官方语言

时间:2019-02-02 22:47:26

标签: python parsing wikipedia

嗨,我正在尝试从csv文件中的一系列国家/地区获取官方语言。我使用python解析从维基百科获取数据https://en.wikipedia.org/wiki/” +地名。他们有的CLASS =‘信息框地理名片’作为自己的表。我尝试用下面的代码中提取,但它们都打印出“表为空”(即使在DOM的页面中,如阿尔巴尼亚,安道尔等)。谢谢。

import requests
from bs4 import BeautifulSoup
import csv
with open('district.csv', 'r') as csv_file2:
    csv_reader2 = csv.reader(csv_file2)       
    for line in csv_reader2:
    url3 = "https://en.wikipedia.org/wiki/" + str(line)
    hdr = {'User-Agent':'Mozilla/5.0'}
    r1 = requests.get(url3, hdr)
    soup = BeautifulSoup(r1.text, 'lxml')
    table = soup.find(class_='infobox geography vcard')
    result = {}
    if table is not None:
        for tr in table.find_all('tr'):
            if tr.find('td'):
                result=tr.find('td').text
            else:
                result = str(line) + "is Null"
    else:
        result = "Table is Null"
    print(str(line) + result)

1 个答案:

答案 0 :(得分:0)

我仅在阿尔巴尼亚网站上尝试过此操作,因此请检查它是否适用于其他网站,但对于阿尔巴尼亚,请执行以下循环:

for i in soup.find_all('th'):
   if 'Official' in i.text:
       print(i.text+':',i.find_parent().find('a').text)

输出:

  

官方语言:阿尔巴尼亚语