Я пытаюсь разобрать эту html-страницу, чтобы узнать количество авиакомпаний по регионам, странам и городам: https://en.m.wikipedia.org/wiki/List_of_hub_airports
Я использую Beautifulsoup для получения данных, но проблема в том, что я получил данные отдельно,Например, все авиакомпании без региона, страны и города. Я использую метод findall для получения специальных заголовков.
Вот мой код:
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = requests.get("https://en.wikipedia.org/wiki/List_of_hub_airports").text
soup = BeautifulSoup(url, "lxml")
GLOBAL =[]
l=[]
A=[]
B=[]
C=[]
D=[]
k=[]
G=[[]]
T=soup.findAll({'h2','h3','ul'})
T=soup.findAll({'h2','h3','ul'})
for line in T:
if line.name == 'h2':
REG = line.findAll('span', {'class': 'mw-headline'})
if REG:
A=REG[0].get('id')
if line.name == 'h3':
REG = line.findAll('span', {'class': 'mw-headline'})
if REG:
B=REG[0].get('id')
if line.name == 'ul':
if B:
city=line.findAll('a')
for i in city:
if i.get('title'):
if i.get('title').endswith('Airport') == True:
D=[]
for i in city:
D.append(i.text)
l.append([A,B,D])
break
for k in l:
print(k)
Результат:
[region,country,[cities,listArilines]]
Но ожидаемый результат:
[region,country,[city,listAirlines]]
Итак, у меня две проблемы: - Я потерял зависимость между городом и его авиакомпаниями. - Для какого-то региона / страны у меня есть таблица, например, Европа, и я не знаю, как ее проанализировать, чтобы извлечь ее из ожидаемого результата.
Мне нужна ваша помощь. Спасибо