Получить список городов России из Википедии

Рейтинг: 0Ответов: 1Опубликовано: 01.02.2023

Помогите, пожалуйста, получить только список городов. Задача: получить города России. Суть: В каждом столбике есть тег <tr> - это строки таблицы.

Каждый тег <tr> включает в себя несколько тегов <td>

Теги <td> включают в себя названия городов, регионов и т. д.

Названия городов, регионов записаны в title, поэтому, когда я вывожу, то у меня все title`ы выводятся, а мне надо, чтобы title городов выводились.

import requests
import pandas as pd
from bs4 import BeautifulSoup

website_url = requests.get('https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8').text
soup = BeautifulSoup(website_url,'lxml')

My_table = soup.find('table',{'class':'standard sortable'})

links = My_table.findAll('a')

town = []
for link in links:
    print(link.get('title'))

Ответы

▲ 1

В данном случае гораздо проще воспользоваться библиотекой Pandas, тем более, что вы её уже импортируете:

import pandas as pd

url = 'https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8'
df = pd.read_html(url)[0]
print(df['Город'])

Вывод:

0           Абаза
1          Абакан
2        Абдулино
3          Абинск
4         Агидель
          ...    
1112    Ярославль
1113       Ярцево
1114    Ясногорск
1115        Ясный
1116       Яхрома
Name: Город, Length: 1117, dtype: object