从MLB网站的游戏统计数据表中读取美丽汤

时间:2019-06-25 04:29:49

标签: python beautifulsoup

我正试图从美国职业棒球大联盟球员网站(https://www.mlb.com/player/charlie-morton-450203?stats=gamelogs-r-pitching-mlb&year=2019)的“游戏统计信息”表中抓取/读取。我似乎无法找到/捕获类名。当我在chrome中“检查HTML”时,我可以看到类名,但是似乎找不到漂亮的汤。

是否有一些变通方法/技巧来正确地将其插入?

from bs4 import BeautifulSoup
import requests

page = requests.get('https://www.mlb.com/player/charlie-morton-450203?stats=gamelogs-r-pitching-mlb&year=2019')

soup = BeautifulSoup(page.text, "html.parser")
body = soup.find('body')

table = body.findAll('div', {'class':'gamelogs-table'})
print(table)

2 个答案:

答案 0 :(得分:2)

数据通过AJAX加载。为了获得正确的数据源,您需要通过以下方式找到网址: Firefox中的开发者控制台。该脚本打印播放器450203的JSON数据:

import requests
import json

url = 'https://statsapi.mlb.com/api/v1/people/450203/stats?stats=gameLog'
data = requests.get(url).json()

print(json.dumps(data, indent=4))

答案 1 :(得分:0)

如果您只想检索数据,建议您在尝试抓取网站之前先查找现有的API,例如this。抓取工具易于更改网站布局。

This是您可能感兴趣的Reddit论坛。