I did it a bit differently, same results:
import requests from bs4 import BeautifulSoup import csv import os url = 'http://www.cfbstats.com/2018/team/234/index.html' r = requests.get(url) soup = BeautifulSoup(r.text, 'html.parser') table = soup.findAll("table",{"class": "team-schedule"})[0] trs = table.find_all('tr') header = [] for n, tr in enumerate(trs): if n == 0: # Get Header ths = tr.find_all('th') for th in ths: header.append(th.text.strip()) for item in header: print('{:22}'.format(item), end='') print() continue else: game_item = [] tds = tr.find_all('td') for td in tds: game_item.append(td.text.strip()) for item in game_item: print('{:22}'.format(item), end='') print()
Output:Date Opponent Result Game Time Attendance
09/03/18 Virginia Tech L 3-24 3:12 75,237
09/08/18 Samford W 36-26 3:51 72,239
09/15/18 @ 17 Syracuse L 7-30 3:37 37,457
09/22/18 Northern Ill. W 37-19 3:34 65,633
09/29/18 @ Louisville W 28-24 3:27 52,798
10/06/18 @ Miami (Fla.) L 27-28 4:01 65,490
10/20/18 Wake Forest W 38-17 3:34 67,274
10/27/18 2 Clemson L 10-59 3:47 68,403
11/03/18 @ North Carolina St. L 28-47 3:33 57,600
11/10/18 @ 3 Notre Dame L 13-42 3:22 77,622
11/17/18 Boston College W 22-21 3:31 57,274
11/24/18 10 Florida L 14-41 3:27 71,953
@ : Away, + : Neutral Site