1

到目前为止,这是我的代码:

from bs4 import BeautifulSoup
from urllib.request import urlopen

url = urlopen("http://sports.yahoo.com/nhl/scoreboard?d=2013-04-01")

content = url.read()

soup = BeautifulSoup(content)

print (soup.prettify)

table = soup.find('table')
rows = table.findAll('tr')

for tr in rows:
    cols = tr.findAll('td')
    for td in cols:
        text = td.findAll('yspscores')
        for yspscores in td:
            print (yspscores)

我遇到的问题是该雅虎页面的 HTML 在此上下文中具有表数据:<td class="yspscores">

我不太明白如何在我的代码中引用它。我的目标是打印出分数对应的球队的分数和名称。

4

1 回答 1

1

您抓住了第一张桌子,但该页面上有不止一张桌子。实际上,有46 个表。

你想找到这个scores类的表:

for table in soup.find_all('table', class_='scores'):
    for row in table.find_all('tr'):
        for cell in row.find_all('td', class_='yspscores'):
            print(cell.text)

请注意,搜索特定类是使用class_关键字参数完成的。

于 2013-08-12T21:36:42.400 回答