web scraping - как обратиться к отдельному td внутри tr

всем привет!
Мне необходимо в pandas dataframe записать два элемента внутри каждого ряда

from bs4 import BeautifulSoup
import requests
import html5lib
import pandas as pd

html_data = requests.get('https://en.wikipedia.org/wiki/List_of_largest_banks', timeout=20).content

soup = BeautifulSoup(html_data, "html.parser")

newDataFrame = pd.DataFrame(columns=['Name', 'Market Cap (US$ Billion)'])
for row in soup.find_all('tbody')[3].find_all('tr'):
    col = row.find_all('td')
    print(col)

т.е первый ряд это

[
<td>1</td>, 
<td><a href="/wiki/JPMorgan_Chase" title="JPMorgan Chase">JPMorgan Chase</a></td>, 
<td>368.78</td>
]

мне нужно название банка в title и сумма в 3-м ряду

как я могу обратиться на них в цикле выше?


Ответы (1 шт):

Автор решения: Сергей Кох

В pandas есть замечательная функция для чтения таблиц c html страницы:

import pandas as pd
dfs = pd.pandas.read_html('https://en.wikipedia.org/wiki/List_of_largest_banks', attrs={'class':'wikitable sortable mw-collapsible'})
print(dfs2][['Bank name', 'Market cap(US$ billion)']])

dfs[2] - берем нужную таблицу и заданные столбцы. И всё!

→ Ссылка