2020 için NFL XML Zamanlama Verileri nerede bulunur?
Nflgame ve nfldb modüllerini kullanarak nfl xml verilerinden programları çekiyorum, ancak aşağıdaki işlevi kullanarak oluşturulan URL'lerin bir 404 hatası döndürdüğünü fark ettim. Son zamanlarda başka biri bunu deneyimledi ve bunun neden böyle olduğunu biliyor mu?
def schedule_url(year, stype, week):
"""
Returns the NFL.com XML schedule URL. `year` should be an
integer, `stype` should be one of the strings `PRE`, `REG` or
`POST`, and `gsis_week` should be a value in the range
`[0, 17]`.
"""
xmlurl = 'http://www.nfl.com/ajax/scorestrip?'
if stype == 'POST':
week += 17
if week == 21: # NFL.com you so silly
week += 1
return '%sseason=%d&seasonType=%s&week=%d' % (xmlurl, year, stype, week)
schedule_url(2019, 'REG', 1)
Yanıtlar
nfl.com, sitesini ve API'lerini yeniden yapılandırdı. nflgame artık işe yaramayan buna büyük ölçüde güveniyordu. Nfl programını, canlı skorları, güncellemeleri, oyun oynamayı vb. Almak için bir alternatif bulmanız gerekecek.
Programı ESPN uç noktalarından alabilirsiniz
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Mobile Safari/537.36'}
url = "http://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard"
payload = {'week':'1'}
jsonData = requests.get(url, headers=headers, params=payload).json()
Eskisi artık çalışmadığı için puan almak için kullandığım şey bu.
https://static.nfl.com/liveupdate/scorestrip/ss.xml
'Https://static.nfl.com/ajax/scorestrip?' ya da www bölümünü statik ile değiştirin ve gitmeniz iyi olur.
Ayrıca gelecekteki oyunlar için yeni site biçimi şu şekildedir:
https://static.nfl.com/ajax/scorestrip?season=2020&seasonType=REG&week=2