Первая проблема с этим утверждением: "t = soup.find (id = 'table')" Нет ничего с id таблицы.Я думаю, что вы имеете в виду "t = soup.find ('table')", это находит таблицу.К сожалению, он находит только таблицу first .
Вы можете сделать "t = soup.findAll (table) [1]", но это будет довольно хрупко.
Iпредложил бы что-то вроде следующего:
html = file("whatever.html")
soup = BeautifulSoup(html)
rows = soup.findAll("tr", {'class': ['odd', 'even']})
dat = []
for row in rows:
dat.append( map( str, row.findAll('td') )
Полученная переменная dat:
[['<td class="left"><a href="whatever">ABX</a></td>', '<td class="left">Barrick Gold Corp.</td>', '<td>55.95</td>', '<td>55.18</td>', '<td class="up">+0.70</td>', '<td>11040601</td>', '<td>70.28%</td>', '<td><center> <a href="whatever" class="bcQLink"> Q </a> <a href="chart.asp?sym=ABX&code=XDAILY" class="bcQLink"> C </a> <a href="texpert.asp?sym=ABX&code=XDAILY" class="bcQLink"> O </a> </center></td>']]
Редактировать: неверный индекс массива