python - 我不太明白如何解析 Yahoo NHL 页面

标签 python python-3.x beautifulsoup

这是迄今为止我的代码:

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)

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

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

最佳答案

您抓取了第一个表格,但该页面上有多个表格。事实上,有 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_ 关键字参数完成的。

关于python - 我不太明白如何解析 Yahoo NHL 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196894/

相关文章:

python - TensorFlow:DNNRegressor,如何保存模型以进行预测

python - 如何从漂亮的汤对象中获取 HTML

python-3.x - Python colorama 不处理输入?

python - 计算任何数字的最大素因数

python - 评估变量包含 f 字符串中的数学表达式

python - 根据另一列的条件对日期时间列的耗时进行分组

Python 的 StringIO 不能很好地处理 `with` 语句

Python 漂亮的 Soup 代码不起作用

python - 获取指向包含某些文本的标签的xpath

python-2.7 - 使用 Beautiful Soup 计算请求页面上的链接