1 回答

TA贡献1790条经验 获得超9个赞
正如您所注意到的,您的数据采用 JSON 格式。它直接嵌入到页面中的脚本标记中,因此很容易使用它美丽汤。然后你需要解析json以提取所有表(对应3个选项卡):
import requests
from bs4 import BeautifulSoup
import json
url = 'https://overwatchleague.com/en-us/standings'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
script = soup.find("script",{"id":"__NEXT_DATA__"})
data = json.loads(script.text)
tabs = [
i.get("standings")["tabs"]
for i in data["props"]["pageProps"]["blocks"]
if i.get("standings") is not None
]
result = [
{ i["title"] : i["tables"][0]["teams"] }
for i in tabs[0]
]
print(json.dumps(result, indent=4, sort_keys=True))
上面的代码给你一个字典,键是3个选项卡的标题,值是表数据
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报