首页 > 解决方案 > Divs 下的强实例 - 仅捕获初始实例

问题描述

我的代码有一个小问题。实际上,我的目标是从一些代码中获取以下实例:

<td>
<div>
<div>8 of 15 — <strong>53%</strong></div>
<div><div style="width: 100%"><div style="width: 53%"></div></div>
</div>
</div>
</td>

我试图在 div 中捕获数据,在强之前,以及强百分比。目前正在使用以下内容获取这些数据,但我只能获取 a) 第一个实例或 b) 空值:

from bs4 import BeautifulSoup as bsoup
import requests as reqs

other_stat_list = []

page_to_parse = 'https://fbref.com/en/matches/033092ef/Northampton-Town-Lincoln-City-August-4-2018-League-Two'

page = reqs.get(page_to_parse)
status_code = page.status_code
status_code = str(status_code)
parse_page = bsoup(page.content, 'html.parser')


find_other_stats = parse_page.find_all('div', id="team_stats")
for stat in find_other_stats:
    add_other_stats = stat.find_next('strong').get_text()
    other_stat_list.append(add_other_stats)
    print(add_other_stats)

我之前遇到过类似的问题,不是所有的 div 实例都被捕获。我运行了一个递归来捕获代码中的所有孩子:

find_other_stats = parse_page.find_all('div', id="team_stats")
all_other_stats = find_other_stats[0].find_all('div', recursive=False)
for stat in all_other_stats:
    add_other_stats = find_next('strong').get_text()
     other_stat_list.append(add_team)

然而,这个变体也会产生空值,所以不确定为什么递归不起作用。

期望得到'53%',理想情况下是'8 of 15 -。我可以自己解析这些值,但捕获它们看起来比我预期的要难。谢谢您的帮助!

标签: pythonbeautifulsoup

解决方案



推荐阅读