Как извлечь определенные столбцы из таблицы Википедии, используя python / Beautiful Soup - PullRequest
1 голос
/ 28 сентября 2019

Я действительно какое-то время был озадачен этим.

Ссылка на таблицу = https://en.wikipedia.org/wiki/List_of_Manchester_United_F.C._seasons

Я хочу получить данные в столбцах, выделенных красным цветом ниже

enter image description here

И поместите его в фрейм данных панд, как этот

enter image description here

Вот мой код

import urllib.request
url = "https://en.wikipedia.org/wiki/List_of_Manchester_United_F.C._seasons"
page = urllib.request.urlopen(url)
from bs4 import BeautifulSoup
soup = BeautifulSoup(page, "lxml")
# print(soup.prettify())


my_table = soup.find('table', {'class':'wikitable sortable'})

season = []
data = []
for row in my_table.find_all('tr'):
    s = row.find('th')
    season.append(s)
    d = row.find('td')
    data.append(d)


import pandas as pd
c = {'Season': season, 'Data': data}
df = pd.DataFrame(c)

df

Вот мой вывод.Я совершенно заблудился о том, как добраться до простой таблицы из 5 столбцов выше.Спасибо enter image description here

1 Ответ

1 голос
/ 28 сентября 2019

Вы почти у цели, хотя вам не нужен красивый суп для этого;просто панды.

Попробуйте это:

url = "https://en.wikipedia.org/wiki/List_of_Manchester_United_F.C._seasons"
resp = requests.get(url)

tables = pd.read_html(resp.text)

target = tables[2].iloc[:,[0,2,3,4,5]]
target

Вывод:

    Season      P       W       D       L        
    Season      League  League  League  League   
0   1886–87     NaN     NaN     NaN     NaN      
1   1888–89[9]  12      8       2       2        
2   1889–90     22      9       2       11       

и т. д.И вы можете взять его оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...