it-swarm.com.de

Erhalten Sie Live-NFL-Scores/Statistiken zum Lesen und Bearbeiten?

Ich benötige eine Art Datenbank oder Feed, um auf Live-Ergebnisse (und möglicherweise Spielerstatistiken) für die NFL zuzugreifen. Ich möchte in der Lage sein, die Punktzahlen für meine Pickem-Liga auf meiner Website anzuzeigen und den Benutzern zu zeigen, ob ihre Wahl gewinnt oder nicht.

Ich bin mir nicht sicher, wie ich das anstellen soll. Kann mich jemand in die richtige Richtung weisen?

Außerdem muss es kostenlos sein.

12
John Salvetti

Haftungsausschluss: Ich bin der Autor der Tools, für die ich werben möchte.

Im letzten Jahr habe ich ein paar Python-Bibliotheken geschrieben, die tun, was Sie wollen. Der erste ist nflgame , der Spieledaten (einschließlich Play-by-Play) aus dem Gamecenter-JSON-Feed von NFL.com sammelt. Dies beinhaltet aktive Spiele, bei denen die Daten ungefähr alle 15 Sekunden aktualisiert werden. nflgame hat ein Wiki mit ein paar Tipps zum Einstieg.

Ich habe nflgame letztes Jahr veröffentlicht und es in der letzten Saison verwendet. Ich denke, es ist einigermaßen stabil.

Im letzten Sommer habe ich an seinem reiferen Bruder gearbeitet, nfldb . nfldb bietet Zugriff auf dieselbe Art von Daten, die auch nflgame verwendet, außer dass alles in einer relationalen Datenbank gespeichert wird. nfldb hat auch ein Wiki , obwohl es noch nicht vollständig ist.

Zum Beispiel werden hier alle aktuellen Spiele und ihre Punktzahlen ausgegeben:

import nfldb

db = nfldb.connect()

phase, year, week = nfldb.current(db)
q = nfldb.Query(db).game(season_year=year, season_type=phase, week=week)
for g in q.as_games():
    print '%s (%d) at %s (%d)' % (g.home_team, g.home_score,
                                  g.away_team, g.away_score)

Da keine Spiele gespielt werden, werden alle Spiele für die nächste Woche mit 0 Punkten ausgegeben. Dies ist die Ausgabe mit week=1: (der Saison 2013)

CLE (10) at MIA (23)
DET (34) at MIN (24)
NYJ (18) at TB (17)
BUF (21) at NE (23)
SD (28) at HOU (31)
STL (27) at ARI (24)
SF (34) at GB (28)
DAL (36) at NYG (31)
WAS (27) at PHI (33)
DEN (49) at BAL (27)
CHI (24) at CIN (21)
IND (21) at Oak (17)
JAC (2) at KC (28)
PIT (9) at TEN (16)
NO (23) at ATL (17)
CAR (7) at SEA (12)

Beide sind unter der WTFPL lizenziert und können für jeden Zweck verwendet werden.

N.B. Ich habe erkannt, dass Sie dies als PHP markiert haben, aber dies wird Sie vielleicht in die richtige Richtung weisen. Insbesondere können Sie nfldb verwenden, um eine PostgreSQL-Datenbank zu pflegen und mit Ihrem PHP -Programm abzufragen.

22
BurntSushi5

Ich weiß, das ist alt, aber das ist was ich nur für Scores benutze ... vielleicht wird es irgendwann jemandem helfen. Hinweis: Es gibt einige Elemente, die Sie nicht verwenden werden und für meine Website spezifisch sind. Dies wäre jedoch ein sehr guter Anfang für jemanden.

<?php
require('includes/application_top.php');
$week = (int)$_GET['week'];

//load source code, depending on the current week, of the website into a variable as a string
$url = "http://www.nfl.com/liveupdate/scorestrip/ss.xml"; //LIVE GAMES

if ($xmlData = file_get_contents($url)) {
$xml = simplexml_load_string($xmlData);
$json = json_encode($xml);
$games = json_decode($json, true);
}

$teamCodes = array(
'JAC' => 'JAX',
);

//build scores array, to group teams and scores together in games
$scores = array();
foreach ($games['gms']['g'] as $gameArray) {
$game = $gameArray['@attributes'];

//ONLY PULL SCORES FROM COMPLETED GAMES - F=FINAL, FO=FINAL OVERTIME
if ($game['q'] == 'F' || $game['q'] == 'FO') {
    $overtime = (($game['q'] == 'FO') ? 1 : 0);
    $away_team = $game['v'];
    $home_team = $game['h'];
    foreach ($teamCodes as $espnCode => $nflpCode) {
        if ($away_team == $espnCode) $away_team = $nflpCode;
        if ($home_team == $espnCode) $home_team = $nflpCode;
    }
    $away_score = (int)$game['vs'];
    $home_score = (int)$game['hs'];

    $winner = ($away_score > $home_score) ? $away_team : $home_team;
    $gameID = getGameIDByTeamID($week, $home_team);
    if (is_numeric(strip_tags($home_score)) && is_numeric(strip_tags($away_score))) {
            $scores[] = array(
                'gameID' => $gameID,
                'awayteam' => $away_team,
                'visitorScore' => $away_score,
                'hometeam' => $home_team,
                'homeScore' => $home_score,
                'overtime' => $overtime,
                'winner' => $winner
            );
    }
  }
}

//see how the scores array looks
//echo '<pre>' . print_r($scores, true) . '</pre>';
echo json_encode($scores);

//game results and winning teams can now be accessed from the scores array
//e.g. $scores[0]['awayteam'] contains the name of the away team (['awayteam'] part) from the first game on the page ([0] part)
4
Mark Jones

Also habe ich etwas gefunden, was mir am MEISTEN, wonach ich suchte, gibt. Es hat Live-Spielstatistiken, aber nicht die aktuellen Abwärtsbewegungen, zu erreichenden Yards und die Feldposition.

Reguläre Saison: http://www.nfl.com/liveupdate/scorestrip/ss.xml

Nachsaison: http://www.nfl.com/liveupdate/scorestrip/postseason/ss.xml

Ich möchte immer noch einen Live-Player-Stat-Feed finden, um Fantasy Football zu meiner Website hinzuzufügen, aber ich glaube nicht, dass es einen kostenlosen gibt.

4
John Salvetti

Ich habe das letzte Jahr damit verbracht, an einem einfachen CLI-Tool zu arbeiten, um auf einfache Weise Ihre eigenen NFL-Datenbanken zu erstellen. Derzeit werden PostgreSql und Mongo nativ unterstützt, und Sie können programmgesteuert mit der Engine interagieren, wenn Sie sie erweitern möchten.

Möchten Sie mithilfe der Engine eine andere Datenbank (z. B. MySQL) erstellen (oder sogar Postgres/Mongo verwenden, aber mit Ihrem eigenen Schema)? Implementieren Sie einfach eine Schnittstelle und die Engine erledigt die Arbeit für Sie.

Alles, einschließlich der Datenbankeinrichtung und Aktualisierung mit den neuesten Statistiken, kann mit einem einzigen Befehl ausgeführt werden:

ffdb setup

Ich weiß, dass diese Frage alt ist, aber mir ist auch klar, dass es immer noch ein funktionierendes und benutzerfreundliches Tool dafür gibt. Der ganze Grund, warum ich das gebaut habe, ist, meine eigene Fußball-App in naher Zukunft zu betreiben und hoffentlich kann dies anderen helfen.

Da die Frage ziemlich alt ist, funktionieren viele Antworten derzeit nicht oder es handelt sich um Referenzprojekte, die nicht mehr gepflegt werden.

Auf der Github-Reposeite finden Sie ausführliche Informationen zum Herunterladen des Programms, der CLI-Befehle und weiterer Informationen:

FFDB Github Repository

1
Isaiah Lee
$XML = "http://www.nfl.com/liveupdate/scorestrip/ss.xml";
$lineXML = file_get_contents($XML);
$subject = $lineXML;
//match and capture week then print
$week='/w="([0-9])/';
preg_match_all($week, $subject, $week);
echo "week ".$week[1][0]."<br/>"; 
$week2=$week[1][0];
echo $week2; 

//capture team, scores in two dimensional array  
$pattern = '/hnn="(.+)"\shs="([0-9]+)"\sv="[A-Z]+"\svnn="(.+)"\svs="([0-9]+)/';
preg_match_all($pattern, $subject, $matches);

//enumerate length of array (number games played)
$count= count($matches[0]);

 //print array values
 for ($x = 0; $x < $count ; $x++) {
         echo"<br/>";
         //print home team
         echo $matches[1][$x],"   ",
         //print home score
         $matches[2][$x],"   ",
         //print visitor team
         $matches[3][$x],"   ",
         //print visitor score
         $matches[4][$x];
         echo "<br/>";

       }
0
Chris