gpt4 book ai didi

python - BeautifulSoup 返回空的 td 标签

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:12 25 4
gpt4 key购买 nike

我正在尝试从这个 URL“http://baloncestoenvivo.feb.es/Game/1881578”获取一些信息。我想获取一个表中的所有信息,该表位于一个 div 中,带有此 id = "keyfacts-playbyplay-content-scroll"

我使用此代码访问此表:

table = page_soup.find(id="keyfacts-playbyplay-content-scroll").findAll("table", {"class" : "twelve even"})

然后,打印“表格”以查看我得到了什么,我得到一个没有数据的 tr。然而,使用firefox或chrome控制台我们可以看到有799行数据!!!

这是我在 python 控制台中打印“表格”时得到的结果:

>> table
<table class="twelve even">
<thead>
<tr>
<th colspan="2">Tiempo</th>
<th colspan="2">Cuarto</th>
<th colspan="2">Puntuación</th>
<th colspan="8">Acción</th>
</tr>
</thead>
<tbody>
<!-- ko foreach: LINES -->
<tr>
<td class="text-center" colspan="2" data-bind="text : time"></td>
<td class="text-center" colspan="2" data-bind="text : quarter"></td>
<td colspan="2" data-bind="text : scoreA()==null ? '' : scoreA()+'-'+scoreB()" style="color:#FB0127; text-align: center"></td>
<td colspan="8" data-bind="text : text"></td>
</tr>
<!-- /ko -->
</tbody>
</table>

这是我们可以在控制台中看到的:

enter image description here

为什么不一样呢?所有带有带有信息的 td 标签的 tr 标签?

我做错了什么?

最佳答案

表格的内容是通过 JavaScript 动态生成的。这就是页面源代码没有它们的原因。 requests 模块在不执行 JavaScript 的情况下为您提供页面源代码,这就是您看到不完整数据的原因。

如果您检查开发工具中 Network 选项卡下的 XHR 选项卡,则会向 http://baloncestoenvivo.feb.es/api/KeyFacts/1881578 发送请求。它以 JSON 的形式返回数据。您可以使用 requests 模块及其内置的 .json() 函数解析此数据。

唯一的问题是,您需要传递以下 header 。没有它们,网站将阻止脚本,您将看到 requests.exceptions.ConnectionError

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
'Accept': 'application/json, text/javascript, */*; q=0.01'}

r = requests.get('http://baloncestoenvivo.feb.es/api/KeyFacts/1881578', headers=headers)
data = r.json()

您现在可以从 data 变量中获取所有表值。要查看其结构,请使用 pprint模块。

比如获取玩家名字和对应的点数,可以这样使用:

for player in data['SCOREBOARD']['TEAM'][0]['PLAYER']:
name = player['name']
points = player['pts']
print(name, points)

输出:

A. ELONU 6
L. NICHOLLS GONZALEZ 10
S. DOMINGUEZ FERNANDEZ 13
L. QUEVEDO CAÑIZARES 0
M. ASURMENDI VILLAVERDE 5
F. ABDI 0
E. DE SOUZA MACHADO 13
L. GIL COLLADO 0
K. GIVENS 12
D. MOSS 2
A. ROBINSON 0

关于python - BeautifulSoup 返回空的 td 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49260014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com