解析器问题,如何从列表中获取我的 int 值

Parser question, How can I get my int value from list

使用BeautifulSoup

我愿意

games = html.findAll(class_ = "kv")

并获得了不同值的列表。我怎样才能得到我的 int 值 "Матчі"?

这是我的例子

[<div class="kv">All Pick<small>Найбільш популярний режим</small></div>, <div class="kv">Рейтинговий пошук матчів<small>Найбільш популярне лоббі</small></div>, <div class="kv">Центральна лінія<small>Найчастіша лінія</small></div>, <div class="kv">Роль Головна<small>Найбільш поширені ролі</small></div>, <div class="kv">10,598<small>Матчі</small></div>, <div class="kv">36:25<small>Тривалість матчу</small></div>, <div class="kv"><span 
class="color-stat-win">53.09%</span><small>Відсоток перемог</small></div>, <div class="kv"><span class="color-stat-kda">3.6</span><small>Співвідношення УСП</small></div>,]

我需要从所有列表中获取我的 10,598 值

使用正则表达式搜索包含Матчі的DIV,然后提取开头的数字

import re

games = html.find(class_ = 'kv', text = re.compile('Матчі'))
if games:
    game_count = re.match(r'^[\d,]+', games.string).group(0)

您可以使用 text="Матчі" 找到 <small> 标签,然后获取上一个节点:

from bs4 import BeautifulSoup


html_doc = """
<div class="kv">All Pick<small>Найбільш популярний режим</small></div>
<div class="kv">Рейтинговий пошук матчів<small>Найбільш популярне лоббі</small></div>
<div class="kv">Центральна лінія<small>Найчастіша лінія</small></div>
<div class="kv">Роль Головна<small>Найбільш поширені ролі</small></div>
<div class="kv">10,598<small>Матчі</small></div>
<div class="kv">36:25<small>Тривалість матчу</small></div>
<div class="kv"><span class="color-stat-win">53.09%</span><small>Відсоток перемог</small></div>
<div class="kv"><span class="color-stat-kda">3.6</span><small>Співвідношення УСП</small></div>
"""

soup = BeautifulSoup(html_doc, "html.parser")

value = soup.find("small", text="Матчі").previous
print(value)

打印:

10,598

编辑:从title=获取价值:

html_doc = """
<div class="rank-tier-wrapper" rel="tooltip" title="Ранг: ВартовийIV">
</div>
"""

soup = BeautifulSoup(html_doc, "html.parser")
print(soup.find(class_="rank-tier-wrapper")["title"])

打印:

Ранг: ВартовийIV