嗨,我正在尝试从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)
答案 0 :(得分:0)
我仅在阿尔巴尼亚网站上尝试过此操作,因此请检查它是否适用于其他网站,但对于阿尔巴尼亚,请执行以下循环:
for i in soup.find_all('th'):
if 'Official' in i.text:
print(i.text+':',i.find_parent().find('a').text)
输出:
官方语言:阿尔巴尼亚语