#python #beautifulsoup
#python #beautifulsoup
Вопрос:
Я пытаюсь найти таблицу на странице Википедии, используя BeautifulSoup. Я знаю, как получить первую таблицу, но как мне получить вторую таблицу (недавние изменения в списке компонентов S amp; P 500) с тем же классом wikitable sortable
?
мой код:
import bs4 as bs
import requests
url='https://en.wikipedia.org/wiki/List_of_S&P_500_companies'
r=requests.get(url)
url=r.content
soup = bs.BeautifulSoup(url,'html.parser')
tab = soup.find("table",{"class":"wikitable sortable"})
Ответ №1:
Вы можете использовать soup.find_all
последнюю таблицу и получить к ней доступ. Поскольку существует только два table
тега с wikitable sortable
в качестве класса, последним элементом в результирующем списке будет таблица «Недавние изменения»:
soup.find_all("table", {"class":"wikitable sortable"})[-1]
Ответ №2:
Вы могли бы использовать css-селектор n-го типа для указания второй соответствующей таблицы
import bs4 as bs
import requests
url = 'https://en.wikipedia.org/wiki/List_of_S&P_500_companies'
r = requests.get(url)
url = r.content
soup = bs.BeautifulSoup(url,'lxml')
tab = soup.select_one("table.wikitable.sortable:nth-of-type(2)")
print(tab)