- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从 https://www.bovada.lv/sports/football/nfl 中抓取所有 NFL 投注线/信息使用Python。
在 SO 社区的帮助下,我找到了 NFL 比赛的 api:https://www.bovada.lv/services/sports/event/v2/events/A/description/football/nfl
您可以在我的 Pastebin 上查看有关代码的更多信息: https://pastebin.com/tmAenaBD
这是迄今为止我的代码:
#Just a heads up...The code loads slow since it is printing the entire source
import requests
source = requests.get("https://www.bovada.lv/services/sports/event/v2/events/A/description/football/nfl").json()
print(source)
我可以在代码中看到数据,但是,我不知道如何解析它。有什么建议吗?
我正在寻找的投注线信息包括所有比赛的以下信息(本周总共 13 场比赛):
1) 比赛日期
2) 比赛时间
3) 球队比赛(每场两队)
4) 点差(有赔率)
5) 胜利又名“胜负盘”(有赔率)
6) 总分,又名“大小盘”(赔率)
这是第一场比赛的图片:
如果可能的话,我想要所有的游戏。
我是抓取新手,之前没有编码经验。我感谢我能得到的任何帮助,也感谢您的时间和努力。
最佳答案
你已经差不多了。您已经到达端点并将源转换为 python 对象(或 python 对象的集合),这就是 .json()
的作用。
所以现在您正在寻找一种系统的方法来访问所需的数据,但您不确定数据的结构......因此解决这个问题的最简单方法就是查看它。
Python 有一个内置功能可以帮助您找出对象是什么。你最好的 friend 是函数type()
。让我们看看 source
是什么:
>>> type(source)
<class 'list'>
好吧,源是一个列表,因此我们可以测试它的长度:
>>> len(source)
1
好的,所以这是一个只有一个元素的列表。该列表中有什么内容?
>>> type(source[0])
<class 'dict'>
好的,所以source
是一个list
,里面有一个dict
。该 dict
必须位于所有数据所在的位置,让我们将其隔离:
>>> data = source[0]
python dict
有一些方便的函数也可以进行检查。首先,我们可以看看 data
的 keys
是什么:
>>> data.keys()
dict_keys(['path', 'events'])
因此只有 2 个键,一个称为 path
,另一个称为 events
。当您查找每场比赛的投注信息时,让我们看一下 events
键,首先我们来看看它是什么:
>>> type(data['events'])
<class 'list'>
>>> len(data['events'])
13
好吧,大概是 NFL 比赛的列表,该列表的内容是什么类型:
>>> set(type(e) for e in data['events'])
{<class 'dict'>}
那么它们都是字典
,它们的结构都相同吗?
>>> all(data['events'][0].keys() == e.keys() for e in data['events'][1:])
True
是的,结构都一样。其结构是怎样的?
>>> data['events'][0].keys()
dict_keys(['id', 'description', 'type', 'link', 'status', 'sport', 'startTime', 'live', 'awayTeamFirst', 'denySameGame', 'teaserAllowed', 'competitionId', 'notes', 'numMarkets', 'lastModified', 'competitors', 'displayGroups'])
再说一次,你必须先知道一切到底是什么,然后才能进行推理:
>>> for k, v in data['events'][0].items():
... print(k, type(v))
...
id <class 'str'>
description <class 'str'>
type <class 'str'>
link <class 'str'>
status <class 'str'>
sport <class 'str'>
startTime <class 'int'>
live <class 'bool'>
awayTeamFirst <class 'bool'>
denySameGame <class 'bool'>
teaserAllowed <class 'bool'>
competitionId <class 'str'>
notes <class 'str'>
numMarkets <class 'int'>
lastModified <class 'int'>
competitors <class 'list'>
displayGroups <class 'list'>
在这些键中,只有两个将集合作为值:competitors
和 displayGroups
。因此,任何市场数据都必须包含在其中任何一个中。
我不会为您完成全部工作,但我希望您能明白。当您使用没有任何文档的外部数据源时,系统地检查对象,以便了解您正在处理的内容。
关于python - 如何刮取 NFL 投注线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329150/
我想从 https://www.bovada.lv/sports/football/nfl 中抓取所有 NFL 投注线/信息使用Python。 在 SO 社区的帮助下,我找到了 NFL 比赛的 api
这实际上是一个机器学习分类问题,但我想有一种非常好的快速而肮脏的方法来做到这一点。我想将描述 NFL 球队的字符串(例如“San Francisco”或“49ers”或“San Francisco 4
我目前的三个表是游戏,记录和团队。 teams 表正是您所想的——一张包含所有 32 个团队的表,并带有一个与他们相关联的 id。 games 表包含一个 games_id,哪支球队主场和客场,比赛周
我一直在尝试访问或设法访问来自 NFL.com 的数据,但还没有找到。这些网站上有公共(public)文档: https://api.nfl.com/docs/identity/oauth2/inde
我正在尝试使用 NFL 数据 API 解析少量数据。抓取当前季节。 例如:http://developer.fantasydata.com/docs/services/300/operations/1
我已选择使用此代码构建每周 NFL 选秀的应用程序。谁能帮我隐藏通用单选按钮?我想收集每个人的所有选择。 HTML BAL ||
我需要某种数据库或提要来访问 NFL 的实时比分(可能还有球员统计数据)。我希望能够在我的网站上显示我的 pickem 联盟的分数,并向用户显示他们的选择是否获胜。 我不确定该怎么做。有人可以指出我正
所以我能够自己解决这个问题,但感觉我这样做的效率非常低。我希望有人能够提供替代解决方案,因为这不是理想的方法。 我有自 2009 赛季以来每场 NFL 比赛的数据。该数据集包括一列比赛日期,但不包括一
我正在尝试获取表格上的每个特定统计数据。我已经将范围缩小到一个团队的每一列,只需获取实际数字即可!我的代码是: import requests from bs4 import BeautifulSou
我一直在使用 nflgame 和 nfldb 模块从 nfl xml 数据中提取时间表,但是我注意到使用以下函数生成的 URL 返回 404 错误。最近有没有其他人经历过这种情况并知道为什么会这样?
我正在寻找 http://fantasy.nfl.com/research/projections 上的数据使用 Python 的 Beautiful Soup 和 requests 库将其转换为简单
如何制作类似于 NFL.com's 的下拉菜单?使用 jQuery?我真的很喜欢它隐藏起来的方式,同时仍然提供常规菜单的所有说服力。 最佳答案 使用 jQuery 可以实现类似的功能 Slide ef
我正在尝试将 NFL 球队组织成 Ruby 中的数据结构。我的目标是轻松查询知道巴尔的摩乌鸦队是 AFC( session )和 AFC North(分区)。 我还想轻松查看哪些球队在亚足联(其中 1
我正在从 espn.com 上抓取即将到来的 NFL 赛程的数据。但是,我只能获取表格的第一行,而不能获取表格的其余部分。我相信这是因为 html 的结构和每个日期都有不同的“td”。我可以获取周四的
正在处理 NFL CSV 文件,该文件可以帮助我自动为比赛评分。现在,我可以将团队和分数上传到 csv 文件的仅 1 列中。 这些都在 A 列 示例: 1 NYJ 2 27 3 PHI 4
有没有办法录下一场NFL比赛,然后在YouTube电视上观看?基本上,我想要录制比赛,并有能力快进的商业广告。我很高兴订阅了NFL周日的门票套餐,但必须能够录制比赛并在空闲时观看。否则,NFL将令人无
我是一名优秀的程序员,十分优秀!