Home > Back-end >  Parser question, How can I get my int value from list
Parser question, How can I get my int value from list

Time:02-19

Using BeautifulSoup

I do

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

and got list of different values. How can I get my int value "Матчі"?

This is example what I have

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

I need to get my 10,598 value from all this list

CodePudding user response:

Use a regular expression to search for the DIV containing Матчі, and then extract the number at the beginning.

import re

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

CodePudding user response:

You can find <small> tag with text="Матчі" and then get previous node:

from bs4 import BeautifulSoup


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

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

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

Prints:

10,598
  • Related