0

到目前为止,这是我的代码(感谢 Martijn Pieters 帮助我找出底部部分!)

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)

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)

当我在url变量中检查网站表的元素时,问题是列(1、2、3 等)的值在同一个类中,称为yspscores. 我的想法是使用一个if语句来说明如何处理它们,但是由于它们的类与分数区域中的其余值相同,因此它不起作用。

但是,我还注意到这些数字的宽度 = 24,而它们下面的分数则没有。甚至可以在代码中引用它,以便 Python 可以识别它并以一种简洁的方式将它与其他值分开?

4

1 回答 1

0

是的,您可以使用width=24属性将它们分开。

for cell in row.find_all('td', class_='yspscores'):
    if cell.get('width') == 24:
        print cell.text
于 2013-08-14T03:36:10.743 回答