OLD REPO -- SCRAPER NO LONGER WORKS. USE THE bettoR PACKAGE. Now the bettoR scraper function no longer works.
# Load libraries
library(lubridate)
library(tidyverse)
library(rvest)
library(magrittr)
library(knitr)
# this is the function
GetLines <- function(sport = "NBA", year, type = "both") {
options(stringsAsFactors = FALSE)
sport <- tolower(sport)
# Get team urls and names
url <- paste0("http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/", sport, "/teams/teams.html")
html <- suppressWarnings(readLines(url))
links <- html[grep(paste0("/data/", sport, "/teams/team[0-9]"), html)]
links <- unique(gsub(paste0('.*/data/', sport,'/teams/([^\"]*)\"[ ]*>([^<]*).*'), '\\1,\\2', links))
links <- strsplit(links, ',')
# Create URL stems for getting team records
url.base <- paste(gsub("SPORT", sport, "http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/SPORT/teams/pastresults/"), year - 1, '-', year, '/', sep = '')
full.lines <- data.frame()
# Put all team records in one data frame
for (i in 1:length(links)) {
url <- paste(url.base, links[[i]][1], sep = "")
tables <- read_html(url) %>% html_table(header = TRUE, fill = TRUE)
# Get appropriate data: regular season, playoffs, or both
if (type == 'regular season') {
if (length(tables) == 0) { # If the team didn't exist at the time, make an empty df
temp <- data.frame(matrix(nrow = 1, ncol = 6, data = 0))
temp <- temp[-1, ]
} else {
if (sport == 'nfl') {
temp <- tables[[length(tables) - 1]] # Regular season is always the second to last table
} else if (sport == 'nba') {
temp <- tables[[length(tables)]] # Regular season is always the last table
}
}
} else if (type == 'playoffs') {
if (length(tables) == 1) { # If the team didn't make the playoffs, make an empty df
temp <- data.frame(matrix(nrow = 1, ncol = 6, data = 0))
temp <- temp[-1, ]
} else {
temp <- tables[[1]]
}
} else {
if (length(tables) == 0) { # If the team didn't exist at the time, make an empty df
temp <- data.frame(matrix(nrow = 1, ncol = 6, data = 0))
temp <- temp[-1, ]
} else {
if (sport == 'nfl') {
if (length(tables) == 2) {
temp <- tables[[1]]
} else {
temp <- rbind(tables[[1]], tables[[2]])
}
} else if (sport == 'nba') {
if (length(tables) == 1) {
temp <- tables[[1]]
} else {
temp <- rbind(tables[[1]], tables[[2]])
}
}
}
}
colnames(temp) <- c("date", "away.team", "score", "type", "home.line", "over.under")
if (nrow(temp) > 0) { # Add home team if the df has any info (we didn't ask for playoffs from a team that didn't make it)
temp$home.team <- links[[i]][2]
}
try(full.lines <- rbind(full.lines, temp), silent = FALSE)
}
# Extra formatting for NFL df
if (sport == 'nfl') {
full.lines <- full.lines %>% filter(score != "BYE")
full.lines$date <- gsub("[A-Za-z ]*", "", full.lines$date)
}
# Format date
full.lines$date <- mdy(full.lines$date)
# Remove away games (the odds exist for home team already)
full.lines <- full.lines[-grep('@', full.lines$away.team), ]
# Create home score and away score columns
full.lines$home.score <- as.numeric(gsub('[^0-9]*([0-9]+)-([0-9]+)[^0-9]*', '\\1', full.lines$score))
full.lines$away.score <- as.numeric(gsub('[^0-9]*([0-9]+)-([0-9]+)[^0-9]*', '\\2', full.lines$score))
# Fix line and over/under
full.lines$home.line <- as.numeric(gsub('[^0-9\\.-]', '', full.lines$home.line))
full.lines$over.under <- as.numeric(gsub('[^0-9\\.-]', '', full.lines$over.under))
# Reorder columns, sort by date, and return
full.lines <- full.lines[, c('date', 'type', 'home.team', 'away.team', 'home.score', 'away.score', 'home.line', 'over.under')]
full.lines <- full.lines[order(full.lines$date), ]
return(full.lines)
}
- sport: As of right now, only NFL and NBA have been fully tested... I will be adding NHL, NCAAF, NCAAB, and MLB eventually.
- "NBA"
- "NFL"
- year: season. (2012 would return the data from the 2011-2012 season)
- type:
- "regular season"
- "playoffs"
- "both"
# example
NFL.2017 <- GetLines(sport = "NFL", year = 2017, type = "both")
kable(NFL.2017)
date | type | home.team | away.team | home.score | away.score | home.line | over.under | |
---|---|---|---|---|---|---|---|---|
217 | 2016-09-08 | Week 1 | Denver | Carolina | 21 | 20 | 3.0 | 40.5 |
68 | 2016-09-11 | Week 1 | N.Y. Jets | Cincinnati | 22 | 23 | -1.0 | 42.0 |
84 | 2016-09-11 | Week 1 | Baltimore | Buffalo | 13 | 7 | -3.0 | 44.5 |
153 | 2016-09-11 | Week 1 | Houston | Chicago | 23 | 14 | -5.5 | 43.0 |
169 | 2016-09-11 | Week 1 | Indianapolis | Detroit | 35 | 39 | -2.5 | 51.0 |
185 | 2016-09-11 | Week 1 | Jacksonville | Green Bay | 23 | 27 | 3.5 | 47.0 |
201 | 2016-09-11 | Week 1 | Tennessee | Minnesota | 16 | 25 | 2.5 | 40.0 |
234 | 2016-09-11 | Week 1 | Kansas City | L.A. Chargers | 33 | 27 | -6.5 | 45.5 |
284 | 2016-09-11 | Week 1 | Dallas | N.Y. Giants | 19 | 20 | -1.0 | 47.5 |
317 | 2016-09-11 | Week 1 | Philadelphia | Cleveland | 29 | 10 | -4.0 | 41.5 |
420 | 2016-09-11 | Week 1 | Atlanta | Tampa Bay | 24 | 31 | -2.5 | 46.5 |
452 | 2016-09-11 | Week 1 | New Orleans | Oakland | 34 | 35 | -2.5 | 50.0 |
484 | 2016-09-11 | Week 1 | Arizona | New England | 21 | 23 | -9.0 | 44.5 |
534 | 2016-09-11 | Week 1 | Seattle | Miami | 12 | 10 | -10.5 | 43.5 |
333 | 2016-09-12 | Week 1 | Washington | Pittsburgh | 16 | 38 | 2.5 | 49.0 |
516 | 2016-09-12 | Week 1 | San Francisco | L.A. Rams | 28 | 0 | 2.5 | 43.0 |
15 | 2016-09-15 | Week 2 | Buffalo | N.Y. Jets | 31 | 37 | -1.0 | 40.5 |
51 | 2016-09-18 | Week 2 | New England | Miami | 31 | 24 | -5.5 | 42.0 |
115 | 2016-09-18 | Week 2 | Cleveland | Baltimore | 20 | 25 | 4.0 | 42.0 |
134 | 2016-09-18 | Week 2 | Pittsburgh | Cincinnati | 24 | 16 | -3.0 | 48.0 |
152 | 2016-09-18 | Week 2 | Houston | Kansas City | 19 | 12 | 1.0 | 41.5 |
216 | 2016-09-18 | Week 2 | Denver | Indianapolis | 34 | 20 | -6.0 | 47.0 |
249 | 2016-09-18 | Week 2 | L.A. Chargers | Jacksonville | 38 | 14 | -3.0 | 47.5 |
266 | 2016-09-18 | Week 2 | Oakland | Atlanta | 28 | 35 | -4.0 | 47.5 |
300 | 2016-09-18 | Week 2 | N.Y. Giants | New Orleans | 16 | 13 | -3.5 | 54.0 |
332 | 2016-09-18 | Week 2 | Washington | Dallas | 23 | 27 | -3.5 | 47.0 |
365 | 2016-09-18 | Week 2 | Detroit | Tennessee | 15 | 16 | -6.0 | 48.0 |
400 | 2016-09-18 | Week 2 | Minnesota | Green Bay | 17 | 14 | 1.5 | 43.0 |
435 | 2016-09-18 | Week 2 | Carolina | San Francisco | 46 | 27 | -12.0 | 44.5 |
483 | 2016-09-18 | Week 2 | Arizona | Tampa Bay | 40 | 7 | -7.5 | 49.5 |
499 | 2016-09-18 | Week 2 | L.A. Rams | Seattle | 9 | 3 | 5.5 | 38.0 |
348 | 2016-09-19 | Week 2 | Chicago | Philadelphia | 14 | 29 | -3.0 | 42.5 |
50 | 2016-09-22 | Week 3 | New England | Houston | 27 | 0 | NA | 38.5 |
14 | 2016-09-25 | Week 3 | Buffalo | Arizona | 33 | 18 | 5.0 | 48.0 |
31 | 2016-09-25 | Week 3 | Miami | Cleveland | 30 | 24 | -10.0 | 42.0 |
98 | 2016-09-25 | Week 3 | Cincinnati | Denver | 17 | 29 | -3.5 | 42.0 |
167 | 2016-09-25 | Week 3 | Indianapolis | L.A. Chargers | 26 | 22 | -1.5 | 51.5 |
183 | 2016-09-25 | Week 3 | Jacksonville | Baltimore | 17 | 19 | 2.5 | 45.0 |
199 | 2016-09-25 | Week 3 | Tennessee | Oakland | 10 | 17 | 1.5 | 47.0 |
232 | 2016-09-25 | Week 3 | Kansas City | N.Y. Jets | 24 | 3 | -3.0 | 44.5 |
282 | 2016-09-25 | Week 3 | Dallas | Chicago | 31 | 17 | -6.5 | 44.5 |
299 | 2016-09-25 | Week 3 | N.Y. Giants | Washington | 27 | 29 | -3.5 | 47.0 |
315 | 2016-09-25 | Week 3 | Philadelphia | Pittsburgh | 34 | 3 | 3.5 | 46.5 |
383 | 2016-09-25 | Week 3 | Green Bay | Detroit | 34 | 27 | -6.0 | 47.5 |
434 | 2016-09-25 | Week 3 | Carolina | Minnesota | 10 | 22 | -6.0 | 43.0 |
466 | 2016-09-25 | Week 3 | Tampa Bay | L.A. Rams | 32 | 37 | -3.5 | 40.5 |
532 | 2016-09-25 | Week 3 | Seattle | San Francisco | 37 | 18 | -10.5 | 42.0 |
450 | 2016-09-26 | Week 3 | New Orleans | Atlanta | 32 | 45 | -2.5 | 54.0 |
97 | 2016-09-29 | Week 4 | Cincinnati | Miami | 22 | 7 | -7.5 | 46.0 |
49 | 2016-10-02 | Week 4 | New England | Buffalo | 0 | 16 | -3.5 | 41.0 |
65 | 2016-10-02 | Week 4 | N.Y. Jets | Seattle | 17 | 27 | 1.0 | 40.0 |
81 | 2016-10-02 | Week 4 | Baltimore | Oakland | 27 | 28 | -3.5 | 45.0 |
132 | 2016-10-02 | Week 4 | Pittsburgh | Kansas City | 43 | 14 | -3.0 | 48.0 |
150 | 2016-10-02 | Week 4 | Houston | Tennessee | 27 | 20 | -4.0 | 40.0 |
182 | 2016-10-02 | Week 4 | Jacksonville | Indianapolis | 30 | 27 | 1.0 | 48.0 |
247 | 2016-10-02 | Week 4 | L.A. Chargers | New Orleans | 34 | 35 | -3.5 | 54.0 |
330 | 2016-10-02 | Week 4 | Washington | Cleveland | 31 | 20 | -7.5 | 48.0 |
346 | 2016-10-02 | Week 4 | Chicago | Detroit | 17 | 14 | 3.0 | 48.0 |
417 | 2016-10-02 | Week 4 | Atlanta | Carolina | 48 | 33 | 2.5 | 48.5 |
465 | 2016-10-02 | Week 4 | Tampa Bay | Denver | 7 | 27 | 3.5 | 43.0 |
481 | 2016-10-02 | Week 4 | Arizona | L.A. Rams | 13 | 17 | -10.0 | 43.5 |
513 | 2016-10-02 | Week 4 | San Francisco | Dallas | 17 | 24 | 1.0 | 44.5 |
398 | 2016-10-03 | Week 4 | Minnesota | N.Y. Giants | 24 | 10 | -3.5 | 42.5 |
512 | 2016-10-06 | Week 5 | San Francisco | Arizona | 21 | 33 | 3.5 | 42.5 |
29 | 2016-10-09 | Week 5 | Miami | Tennessee | 17 | 30 | -2.5 | 44.5 |
80 | 2016-10-09 | Week 5 | Baltimore | Washington | 10 | 16 | -4.0 | 44.5 |
112 | 2016-10-09 | Week 5 | Cleveland | New England | 13 | 33 | 10.0 | 47.5 |
131 | 2016-10-09 | Week 5 | Pittsburgh | N.Y. Jets | 31 | 13 | -10.0 | 50.0 |
165 | 2016-10-09 | Week 5 | Indianapolis | Chicago | 29 | 23 | -4.0 | 47.5 |
213 | 2016-10-09 | Week 5 | Denver | Atlanta | 16 | 23 | -3.5 | 44.5 |
263 | 2016-10-09 | Week 5 | Oakland | L.A. Chargers | 34 | 31 | -3.5 | 50.5 |
280 | 2016-10-09 | Week 5 | Dallas | Cincinnati | 28 | 14 | 2.5 | 46.0 |
362 | 2016-10-09 | Week 5 | Detroit | Philadelphia | 24 | 23 | 3.5 | 46.0 |
382 | 2016-10-09 | Week 5 | Green Bay | N.Y. Giants | 23 | 16 | -7.0 | 49.0 |
397 | 2016-10-09 | Week 5 | Minnesota | Houston | 31 | 13 | -6.0 | 39.0 |
496 | 2016-10-09 | Week 5 | L.A. Rams | Buffalo | 19 | 30 | 2.5 | 41.5 |
432 | 2016-10-10 | Week 5 | Carolina | Tampa Bay | 14 | 17 | -6.0 | 46.5 |
245 | 2016-10-13 | Week 6 | L.A. Chargers | Denver | 21 | 13 | 3.0 | 44.0 |
11 | 2016-10-16 | Week 6 | Buffalo | San Francisco | 45 | 16 | -7.5 | 44.0 |
28 | 2016-10-16 | Week 6 | Miami | Pittsburgh | 30 | 15 | 7.5 | 49.5 |
47 | 2016-10-16 | Week 6 | New England | Cincinnati | 35 | 17 | -7.5 | 48.0 |
148 | 2016-10-16 | Week 6 | Houston | Indianapolis | 26 | 23 | -3.0 | 47.5 |
196 | 2016-10-16 | Week 6 | Tennessee | Cleveland | 28 | 26 | -7.5 | 44.5 |
262 | 2016-10-16 | Week 6 | Oakland | Kansas City | 10 | 26 | 1.0 | 46.5 |
296 | 2016-10-16 | Week 6 | N.Y. Giants | Baltimore | 27 | 23 | -3.5 | 42.5 |
328 | 2016-10-16 | Week 6 | Washington | Philadelphia | 27 | 20 | 3.0 | 45.0 |
344 | 2016-10-16 | Week 6 | Chicago | Jacksonville | 16 | 17 | -2.5 | 46.0 |
361 | 2016-10-16 | Week 6 | Detroit | L.A. Rams | 31 | 28 | -2.5 | 44.0 |
381 | 2016-10-16 | Week 6 | Green Bay | Dallas | 16 | 30 | -5.0 | 47.0 |
448 | 2016-10-16 | Week 6 | New Orleans | Carolina | 41 | 38 | 2.5 | 53.5 |
530 | 2016-10-16 | Week 6 | Seattle | Atlanta | 26 | 24 | -7.0 | 45.5 |
479 | 2016-10-17 | Week 6 | Arizona | N.Y. Jets | 28 | 3 | -7.0 | 45.5 |
380 | 2016-10-20 | Week 7 | Green Bay | Chicago | 26 | 10 | -7.5 | 46.5 |
27 | 2016-10-23 | Week 7 | Miami | Buffalo | 28 | 25 | 2.5 | 46.0 |
62 | 2016-10-23 | Week 7 | N.Y. Jets | Baltimore | 24 | 16 | -2.5 | 40.0 |
94 | 2016-10-23 | Week 7 | Cincinnati | Cleveland | 31 | 17 | -11.0 | 46.5 |
129 | 2016-10-23 | Week 7 | Pittsburgh | New England | 16 | 27 | 7.5 | 49.0 |
180 | 2016-10-23 | Week 7 | Jacksonville | Oakland | 16 | 33 | -2.0 | 47.5 |
195 | 2016-10-23 | Week 7 | Tennessee | Indianapolis | 26 | 34 | -4.0 | 48.0 |
229 | 2016-10-23 | Week 7 | Kansas City | New Orleans | 27 | 21 | -7.0 | 51.5 |
312 | 2016-10-23 | Week 7 | Philadelphia | Minnesota | 21 | 10 | 3.0 | 39.0 |
360 | 2016-10-23 | Week 7 | Detroit | Washington | 20 | 17 | 1.0 | 50.0 |
414 | 2016-10-23 | Week 7 | Atlanta | L.A. Chargers | 30 | 33 | -4.5 | 52.5 |
478 | 2016-10-23 | Week 7 | Arizona | Seattle | 6 | 6 | -2.5 | 43.0 |
494 | 2016-10-23 | Week 7 | L.A. Rams | N.Y. Giants | 10 | 17 | 2.5 | 44.5 |
510 | 2016-10-23 | Week 7 | San Francisco | Tampa Bay | 17 | 34 | -1.0 | 45.0 |
211 | 2016-10-24 | Week 7 | Denver | Houston | 27 | 9 | -8.5 | 40.0 |
194 | 2016-10-27 | Week 8 | Tennessee | Jacksonville | 36 | 22 | -3.0 | 43.5 |
9 | 2016-10-30 | Week 8 | Buffalo | New England | 25 | 41 | 5.5 | 48.0 |
93 | 2016-10-30 | Week 8 | Cincinnati | Washington | 27 | 27 | -3.0 | 49.0 |
109 | 2016-10-30 | Week 8 | Cleveland | N.Y. Jets | 28 | 31 | 2.5 | 45.5 |
146 | 2016-10-30 | Week 8 | Houston | Detroit | 20 | 13 | -1.0 | 46.5 |
162 | 2016-10-30 | Week 8 | Indianapolis | Kansas City | 14 | 30 | 3.0 | 50.5 |
210 | 2016-10-30 | Week 8 | Denver | L.A. Chargers | 27 | 19 | -3.5 | 43.0 |
278 | 2016-10-30 | Week 8 | Dallas | Philadelphia | 29 | 23 | -5.0 | 44.0 |
413 | 2016-10-30 | Week 8 | Atlanta | Green Bay | 33 | 32 | -3.0 | 51.0 |
430 | 2016-10-30 | Week 8 | Carolina | Arizona | 30 | 20 | -2.5 | 45.5 |
446 | 2016-10-30 | Week 8 | New Orleans | Seattle | 25 | 20 | 1.0 | 50.0 |
462 | 2016-10-30 | Week 8 | Tampa Bay | Oakland | 24 | 30 | -1.0 | 48.0 |
342 | 2016-10-31 | Week 8 | Chicago | Minnesota | 20 | 10 | 4.5 | 39.5 |
461 | 2016-11-03 | Week 9 | Tampa Bay | Atlanta | 28 | 43 | 4.5 | 49.0 |
26 | 2016-11-06 | Week 9 | Miami | N.Y. Jets | 27 | 23 | -3.5 | 45.0 |
77 | 2016-11-06 | Week 9 | Baltimore | Pittsburgh | 21 | 14 | 3.5 | 46.0 |
108 | 2016-11-06 | Week 9 | Cleveland | Dallas | 10 | 35 | 7.0 | 49.0 |
227 | 2016-11-06 | Week 9 | Kansas City | Jacksonville | 19 | 14 | -7.0 | 42.5 |
242 | 2016-11-06 | Week 9 | L.A. Chargers | Tennessee | 43 | 35 | -3.5 | 47.5 |
259 | 2016-11-06 | Week 9 | Oakland | Denver | 30 | 20 | -1.0 | 44.5 |
294 | 2016-11-06 | Week 9 | N.Y. Giants | Philadelphia | 28 | 23 | -3.0 | 42.5 |
378 | 2016-11-06 | Week 9 | Green Bay | Indianapolis | 26 | 31 | -7.5 | 52.0 |
394 | 2016-11-06 | Week 9 | Minnesota | Detroit | 16 | 22 | -4.5 | 42.5 |
493 | 2016-11-06 | Week 9 | L.A. Rams | Carolina | 10 | 13 | 3.0 | 44.5 |
509 | 2016-11-06 | Week 9 | San Francisco | New Orleans | 23 | 41 | 5.0 | 53.0 |
527 | 2016-11-07 | Week 9 | Seattle | Buffalo | 31 | 25 | -5.5 | 43.5 |
76 | 2016-11-10 | Week 10 | Baltimore | Cleveland | 28 | 7 | -7.5 | 44.0 |
44 | 2016-11-13 | Week 10 | New England | Seattle | 24 | 31 | -7.5 | 49.5 |
59 | 2016-11-13 | Week 10 | N.Y. Jets | L.A. Rams | 6 | 9 | 1.0 | 39.0 |
127 | 2016-11-13 | Week 10 | Pittsburgh | Dallas | 30 | 35 | -3.0 | 50.5 |
177 | 2016-11-13 | Week 10 | Jacksonville | Houston | 21 | 24 | -3.0 | 42.0 |
192 | 2016-11-13 | Week 10 | Tennessee | Green Bay | 47 | 25 | 3.0 | 48.5 |
241 | 2016-11-13 | Week 10 | L.A. Chargers | Miami | 24 | 31 | -4.0 | 48.5 |
309 | 2016-11-13 | Week 10 | Philadelphia | Atlanta | 24 | 15 | -2.0 | 48.5 |
325 | 2016-11-13 | Week 10 | Washington | Minnesota | 26 | 20 | -2.5 | 42.0 |
428 | 2016-11-13 | Week 10 | Carolina | Kansas City | 17 | 20 | -3.0 | 44.0 |
444 | 2016-11-13 | Week 10 | New Orleans | Denver | 23 | 25 | -3.0 | 50.0 |
460 | 2016-11-13 | Week 10 | Tampa Bay | Chicago | 36 | 10 | 2.5 | 45.0 |
476 | 2016-11-13 | Week 10 | Arizona | San Francisco | 23 | 20 | -13.5 | 46.5 |
293 | 2016-11-14 | Week 10 | N.Y. Giants | Cincinnati | 21 | 20 | 1.0 | 49.5 |
427 | 2016-11-17 | Week 11 | Carolina | New Orleans | 23 | 20 | -3.5 | 52.5 |
91 | 2016-11-20 | Week 11 | Cincinnati | Buffalo | 12 | 16 | -2.5 | 48.0 |
106 | 2016-11-20 | Week 11 | Cleveland | Pittsburgh | 9 | 24 | 8.0 | 45.5 |
160 | 2016-11-20 | Week 11 | Indianapolis | Tennessee | 24 | 17 | -3.0 | 53.5 |
225 | 2016-11-20 | Week 11 | Kansas City | Tampa Bay | 17 | 19 | -7.0 | 45.0 |
275 | 2016-11-20 | Week 11 | Dallas | Baltimore | 27 | 17 | -7.0 | 44.5 |
292 | 2016-11-20 | Week 11 | N.Y. Giants | Chicago | 22 | 16 | -7.0 | 41.5 |
324 | 2016-11-20 | Week 11 | Washington | Green Bay | 42 | 24 | -3.0 | 48.0 |
357 | 2016-11-20 | Week 11 | Detroit | Jacksonville | 26 | 19 | -5.5 | 47.0 |
392 | 2016-11-20 | Week 11 | Minnesota | Arizona | 30 | 24 | -2.0 | 39.5 |
491 | 2016-11-20 | Week 11 | L.A. Rams | Miami | 10 | 14 | -1.0 | 39.0 |
507 | 2016-11-20 | Week 11 | San Francisco | New England | 17 | 30 | 10.5 | 51.5 |
525 | 2016-11-20 | Week 11 | Seattle | Philadelphia | 26 | 15 | -6.5 | 42.5 |
258 | 2016-11-21 | Week 11 | Oakland | Houston | 27 | 20 | -6.5 | 45.5 |
159 | 2016-11-24 | Week 12 | Indianapolis | Pittsburgh | 7 | 28 | 8.0 | 50.0 |
274 | 2016-11-24 | Week 12 | Dallas | Washington | 31 | 26 | -5.5 | 53.0 |
356 | 2016-11-24 | Week 12 | Detroit | Minnesota | 16 | 13 | -1.5 | 42.0 |
6 | 2016-11-27 | Week 12 | Buffalo | Jacksonville | 28 | 21 | -8.5 | 43.5 |
23 | 2016-11-27 | Week 12 | Miami | San Francisco | 31 | 24 | -7.5 | 44.5 |
58 | 2016-11-27 | Week 12 | N.Y. Jets | New England | 17 | 22 | 8.5 | 48.0 |
74 | 2016-11-27 | Week 12 | Baltimore | Cincinnati | 19 | 14 | -3.5 | 41.5 |
105 | 2016-11-27 | Week 12 | Cleveland | N.Y. Giants | 13 | 27 | 6.5 | 46.5 |
143 | 2016-11-27 | Week 12 | Houston | L.A. Chargers | 13 | 21 | 2.5 | 45.5 |
207 | 2016-11-27 | Week 12 | Denver | Kansas City | 27 | 30 | -3.5 | 40.0 |
257 | 2016-11-27 | Week 12 | Oakland | Carolina | 35 | 32 | -3.5 | 48.5 |
339 | 2016-11-27 | Week 12 | Chicago | Tennessee | 21 | 27 | 6.5 | 41.5 |
410 | 2016-11-27 | Week 12 | Atlanta | Arizona | 38 | 19 | -4.0 | 49.0 |
442 | 2016-11-27 | Week 12 | New Orleans | L.A. Rams | 49 | 21 | -8.0 | 45.0 |
458 | 2016-11-27 | Week 12 | Tampa Bay | Seattle | 14 | 5 | 5.0 | 46.0 |
307 | 2016-11-28 | Week 12 | Philadelphia | Green Bay | 13 | 27 | -4.0 | 47.0 |
390 | 2016-12-01 | Week 13 | Minnesota | Dallas | 15 | 17 | 3.0 | 43.5 |
41 | 2016-12-04 | Week 13 | New England | L.A. Rams | 26 | 10 | -13.0 | 44.5 |
73 | 2016-12-04 | Week 13 | Baltimore | Miami | 38 | 6 | -3.5 | 41.5 |
89 | 2016-12-04 | Week 13 | Cincinnati | Philadelphia | 32 | 14 | -2.0 | 42.0 |
124 | 2016-12-04 | Week 13 | Pittsburgh | N.Y. Giants | 24 | 14 | -6.5 | 49.5 |
174 | 2016-12-04 | Week 13 | Jacksonville | Denver | 10 | 20 | 3.5 | 38.5 |
239 | 2016-12-04 | Week 13 | L.A. Chargers | Tampa Bay | 21 | 28 | -3.5 | 49.0 |
256 | 2016-12-04 | Week 13 | Oakland | Buffalo | 38 | 24 | -3.0 | 48.5 |
338 | 2016-12-04 | Week 13 | Chicago | San Francisco | 26 | 6 | NA | 44.0 |
374 | 2016-12-04 | Week 13 | Green Bay | Houston | 21 | 13 | -6.5 | 44.5 |
409 | 2016-12-04 | Week 13 | Atlanta | Kansas City | 28 | 29 | -5.0 | 50.0 |
441 | 2016-12-04 | Week 13 | New Orleans | Detroit | 13 | 28 | -6.5 | 53.0 |
473 | 2016-12-04 | Week 13 | Arizona | Washington | 31 | 23 | -2.5 | 48.5 |
523 | 2016-12-04 | Week 13 | Seattle | Carolina | 40 | 7 | -8.0 | 43.5 |
57 | 2016-12-05 | Week 13 | N.Y. Jets | Indianapolis | 10 | 41 | -1.0 | 48.5 |
222 | 2016-12-08 | Week 14 | Kansas City | Oakland | 21 | 13 | -3.5 | 46.0 |
4 | 2016-12-11 | Week 14 | Buffalo | Pittsburgh | 20 | 27 | 1.0 | 45.5 |
21 | 2016-12-11 | Week 14 | Miami | Arizona | 26 | 23 | 2.0 | 44.0 |
104 | 2016-12-11 | Week 14 | Cleveland | Cincinnati | 10 | 23 | 4.5 | 42.0 |
157 | 2016-12-11 | Week 14 | Indianapolis | Houston | 17 | 22 | -6.5 | 47.5 |
173 | 2016-12-11 | Week 14 | Jacksonville | Minnesota | 16 | 25 | 3.0 | 38.0 |
189 | 2016-12-11 | Week 14 | Tennessee | Denver | 13 | 10 | -2.0 | 44.0 |
289 | 2016-12-11 | Week 14 | N.Y. Giants | Dallas | 10 | 7 | 3.5 | 47.0 |
305 | 2016-12-11 | Week 14 | Philadelphia | Washington | 22 | 27 | 2.0 | 48.5 |
354 | 2016-12-11 | Week 14 | Detroit | Chicago | 20 | 17 | -7.5 | 42.0 |
373 | 2016-12-11 | Week 14 | Green Bay | Seattle | 38 | 10 | 3.0 | 47.0 |
424 | 2016-12-11 | Week 14 | Carolina | L.A. Chargers | 28 | 16 | -1.0 | 48.5 |
456 | 2016-12-11 | Week 14 | Tampa Bay | New Orleans | 16 | 11 | -2.0 | 52.0 |
488 | 2016-12-11 | Week 14 | L.A. Rams | Atlanta | 14 | 42 | 4.5 | 44.0 |
504 | 2016-12-11 | Week 14 | San Francisco | N.Y. Jets | 17 | 23 | -3.0 | 42.5 |
40 | 2016-12-12 | Week 14 | New England | Baltimore | 30 | 23 | -6.0 | 45.0 |
521 | 2016-12-15 | Week 15 | Seattle | L.A. Rams | 24 | 3 | -15.0 | 39.5 |
55 | 2016-12-17 | Week 15 | N.Y. Jets | Miami | 13 | 34 | 2.5 | 40.0 |
3 | 2016-12-18 | Week 15 | Buffalo | Cleveland | 33 | 13 | -10.5 | 43.0 |
71 | 2016-12-18 | Week 15 | Baltimore | Philadelphia | 27 | 26 | -5.0 | 41.0 |
87 | 2016-12-18 | Week 15 | Cincinnati | Pittsburgh | 20 | 24 | 3.0 | 45.5 |
140 | 2016-12-18 | Week 15 | Houston | Jacksonville | 21 | 20 | -3.5 | 39.5 |
204 | 2016-12-18 | Week 15 | Denver | New England | 3 | 16 | 3.0 | 43.0 |
221 | 2016-12-18 | Week 15 | Kansas City | Tennessee | 17 | 19 | -6.0 | 43.0 |
237 | 2016-12-18 | Week 15 | L.A. Chargers | Oakland | 16 | 19 | 2.5 | 49.5 |
271 | 2016-12-18 | Week 15 | Dallas | Tampa Bay | 26 | 20 | -7.0 | 47.5 |
288 | 2016-12-18 | Week 15 | N.Y. Giants | Detroit | 17 | 6 | -4.0 | 42.5 |
336 | 2016-12-18 | Week 15 | Chicago | Green Bay | 27 | 30 | 4.5 | 40.0 |
388 | 2016-12-18 | Week 15 | Minnesota | Indianapolis | 6 | 34 | -5.0 | 44.5 |
407 | 2016-12-18 | Week 15 | Atlanta | San Francisco | 41 | 13 | -13.5 | 51.5 |
471 | 2016-12-18 | Week 15 | Arizona | New Orleans | 41 | 48 | -3.0 | 48.5 |
320 | 2016-12-19 | Week 15 | Washington | Carolina | 15 | 26 | -7.0 | 50.5 |
303 | 2016-12-22 | Week 16 | Philadelphia | N.Y. Giants | 24 | 19 | -1.5 | 42.5 |
2 | 2016-12-24 | Week 16 | Buffalo | Miami | 31 | 34 | -4.5 | 44.5 |
38 | 2016-12-24 | Week 16 | New England | N.Y. Jets | 41 | 3 | -17.0 | 45.0 |
102 | 2016-12-24 | Week 16 | Cleveland | L.A. Chargers | 20 | 17 | 4.5 | 45.0 |
139 | 2016-12-24 | Week 16 | Houston | Cincinnati | 12 | 10 | -3.0 | 41.5 |
171 | 2016-12-24 | Week 16 | Jacksonville | Tennessee | 38 | 17 | 4.0 | 44.0 |
253 | 2016-12-24 | Week 16 | Oakland | Indianapolis | 33 | 25 | -3.5 | 52.0 |
335 | 2016-12-24 | Week 16 | Chicago | Washington | 21 | 41 | 3.0 | 49.0 |
371 | 2016-12-24 | Week 16 | Green Bay | Minnesota | 38 | 25 | -6.0 | 44.5 |
422 | 2016-12-24 | Week 16 | Carolina | Atlanta | 16 | 33 | 3.0 | 49.0 |
438 | 2016-12-24 | Week 16 | New Orleans | Tampa Bay | 31 | 24 | -3.0 | 53.0 |
486 | 2016-12-24 | Week 16 | L.A. Rams | San Francisco | 21 | 22 | -6.0 | 39.5 |
520 | 2016-12-24 | Week 16 | Seattle | Arizona | 31 | 34 | -9.0 | 43.5 |
121 | 2016-12-25 | Week 16 | Pittsburgh | Baltimore | 31 | 27 | -5.5 | 46.5 |
220 | 2016-12-25 | Week 16 | Kansas City | Denver | 33 | 10 | -3.5 | 38.0 |
270 | 2016-12-26 | Week 16 | Dallas | Detroit | 42 | 21 | -6.5 | 46.5 |
18 | 2017-01-01 | Week 17 | Miami | New England | 14 | 35 | 7.5 | 47.0 |
53 | 2017-01-01 | Week 17 | N.Y. Jets | Buffalo | 30 | 10 | 3.5 | 43.0 |
85 | 2017-01-01 | Week 17 | Cincinnati | Baltimore | 27 | 10 | 2.5 | 40.5 |
120 | 2017-01-01 | Week 17 | Pittsburgh | Cleveland | 27 | 24 | -3.0 | 41.5 |
154 | 2017-01-01 | Week 17 | Indianapolis | Jacksonville | 24 | 20 | -5.5 | 48.5 |
186 | 2017-01-01 | Week 17 | Tennessee | Houston | 24 | 17 | -3.0 | 41.5 |
202 | 2017-01-01 | Week 17 | Denver | Oakland | 24 | 6 | -1.0 | 40.0 |
235 | 2017-01-01 | Week 17 | L.A. Chargers | Kansas City | 27 | 37 | 5.5 | 45.0 |
302 | 2017-01-01 | Week 17 | Philadelphia | Dallas | 27 | 13 | -6.5 | 44.0 |
318 | 2017-01-01 | Week 17 | Washington | N.Y. Giants | 10 | 19 | -9.0 | 47.5 |
351 | 2017-01-01 | Week 17 | Detroit | Green Bay | 24 | 31 | 3.5 | 50.0 |
386 | 2017-01-01 | Week 17 | Minnesota | Chicago | 38 | 10 | -6.0 | 44.0 |
405 | 2017-01-01 | Week 17 | Atlanta | New Orleans | 38 | 32 | -7.5 | 58.5 |
453 | 2017-01-01 | Week 17 | Tampa Bay | Carolina | 17 | 16 | -3.0 | 44.5 |
485 | 2017-01-01 | Week 17 | L.A. Rams | Arizona | 6 | 44 | 7.0 | 39.0 |
501 | 2017-01-01 | Week 17 | San Francisco | Seattle | 23 | 25 | 11.5 | 45.0 |
137 | 2017-01-07 | Wildcard | Houston | Oakland | 27 | 14 | -4.0 | 38.0 |
518 | 2017-01-07 | Wildcard | Seattle | Detroit | 26 | 6 | -8.0 | 45.5 |
119 | 2017-01-08 | Wildcard | Pittsburgh | Miami | 30 | 12 | -11.0 | 47.5 |
369 | 2017-01-08 | Wildcard | Green Bay | N.Y. Giants | 38 | 13 | -5.0 | 46.5 |
36 | 2017-01-14 | Divisional | New England | Houston | 34 | 16 | -16.0 | 44.0 |
404 | 2017-01-14 | Divisional | Atlanta | Seattle | 36 | 20 | -6.5 | 51.0 |
218 | 2017-01-15 | Divisional | Kansas City | Pittsburgh | 16 | 18 | -2.5 | 45.5 |
268 | 2017-01-15 | Divisional | Dallas | Green Bay | 31 | 34 | -5.5 | 52.5 |
35 | 2017-01-22 | Conference | New England | Pittsburgh | 36 | 17 | -5.5 | 50.0 |
403 | 2017-01-22 | Conference | Atlanta | Green Bay | 44 | 21 | -6.5 | 59.5 |
402 | 2017-02-05 | Super Bowl | Atlanta | New England | 28 | 34 | 3.0 | 57.0 |
This function will combine multiple seasons of data together.
Please be kind when scraping websites
GetLinesRange <- function(sport = "NBA", year.start, year.end, type = "both") {
lines <- data.frame()
for (year in year.start:year.end) {
temp <- GetLines(sport, year, type)
temp$season <- year
lines <- rbind(lines, temp)
}
return(lines)
}