如何获得第二个表类?

时间:2019-03-20 22:18:13

标签: python beautifulsoup

我正在尝试使用BeautifulSoup在Wikipedia页面中查找表格。我知道如何获取第一个表,但是如何获取具有相同类wikitable sortable的第二个表(对S&P 500组件列表的最新更改)?

我的代码:

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 个答案:

答案 0 :(得分:2)

您可以使用soup.find_all并访问最后一个表。由于只有两个table标签为wikitable sortable作为类,因此结果列表中的最后一个元素将是“最近的更改”表:

soup.find_all("table", {"class":"wikitable sortable"})[-1]

答案 1 :(得分:2)

您可以使用第n个类型的CSS选择器来指定第二个匹配表

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)