0

ネストされたループを使用して、このサイトからすべてのテーブルを取得しようとしています。私はほとんどそこにいますが、同じクラス識別子を持つ複数のテーブルのループについてはまだわかりません。のエラーコードが表示されますline 26 : for s in soup.findALL ("table", { "class" : "boxScore"})

SyntaxError: 構文が無効です。

私のスクリプト:

import datetime
import urllib
from bs4 import BeautifulSoup
import urllib2


day = int(datetime.datetime.now().strftime("%d"))-1

month = datetime.datetime.now().strftime("%B")
year = datetime.datetime.now().strftime("%Y")
file_name = "/users/ripple/NHL.csv"
file = open(file_name,"w")
url = "http://www.tsn.ca/nhl/scores/?date=" + month + "/" + str(day) + "/" + year
print 'Grabbing from: ' + url + '...\n'
try:
        r = urllib2.urlopen(url)
except urllib2.URLError as e:
           r = e
if r.code in (200, 401):    
    #get the table data from the page
    data = urllib.urlopen(url).read()
    #send to beautiful soup
    soup = BeautifulSoup(data)
    print soup
    soup = soup.findALL ("table", { "class" : "boxScore"})
    for s in soup.findALL ("table", { "class" : "boxScore"})
        table = soup.find("table",{ "class" : "boxScore"})
        for tr in table.findAll('tr')[2:]:
            col = tr.findAll('td')
            team = col[0].get_text().encode('ascii','ignore').replace(" ","")
            firstp = col[1].get_text().encode('ascii','ignore').replace(" ","")
            secondp = col[2].get_text().encode('ascii','ignore').replace(" ","")
            thirdp = col[3].get_text().encode('ascii','ignore').replace(" ","")
            final = col[4].get_text().encode('ascii','ignore').replace(" ","")
            record = team + ',' + final + '\n'
            print record
            file.write(record)
else: 
    print str(i) + " NO GAMES"
file.close()
4

1 に答える 1

2

Python の for ループは、コロン ':' で終わります。

さらに、API メソッドは findAll() であり、findALL() ではありません。

于 2013-04-12T16:53:06.480 に答える