【问题标题】:How do I get the second table class?我如何获得第二个表类?
【发布时间】:2019-03-21 20:08:20
【问题描述】:

我正在尝试使用 BeautifulSoup 在 Wikipedia 页面中查找表。我知道如何获取第一个表,但是如何获取第二个表(标准普尔 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

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

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

    soup.find_all("table", {"class":"wikitable sortable"})[-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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        • 2018-09-17
        • 1970-01-01
        相关资源
        最近更新 更多