Как мне получить второй стол класса? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь найти таблицу на странице Википедии, используя BeautifulSoup.Я знаю, как получить первую таблицу, но как мне получить вторую таблицу (последние изменения в списке компонентов S & P 500) с тем же классом wikitable sortable?

мой код:

import bs4 as bs
import requests

url='https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
r=requests.get(url)
url=r.content
soup = bs.BeautifulSoup(url,'html.parser')

tab = soup.find("table",{"class":"wikitable sortable"})

https://en.wikipedia.org/wiki/List_of_S%26P_500_companies

Ответы [ 2 ]

2 голосов
/ 21 марта 2019

Вы можете использовать селектор css типа n, чтобы указать вторую таблицу соответствия

import bs4 as bs
import requests

url = 'https://en.wikipedia.org/wiki/List_of_S%26P_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)
2 голосов
/ 21 марта 2019

Вы можете использовать soup.find_all и получить доступ к последней таблице.Поскольку существует только два тега table с классом wikitable sortable, последним элементом в результирующем списке будет таблица «Недавние изменения»:

soup.find_all("table", {"class":"wikitable sortable"})[-1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...