Поиск в BeautifulSoup4 по нескольким CSS тегам
Всем привет. Есть такой кусок кода -
<div class="event__part event__part--away event__part--1">14</div>
<div class="event__part event__part--away event__part--1">31</div>
<div class="event__part event__part--home event__part--2">25</div>
<div class="event__part event__part--away event__part--2">14</div>
<div class="event__part event__part--away event__part--3">19</div>
<div class="event__part event__part--home event__part--3">25</div>
<div class="event__part event__part--away event__part--4">31</div>
<div class="event__part event__part--home event__part--4">15</div>
Нужно вытащить именно текстовые значения из этого куска, т.е. числа 14, 31, 25 и т.д.
Нужно сделать поиск по двум CSS-селекторам, но я нашёл только способ с *.select*
Пробовал делать через
for index in range(1, 5):
item = code.select('.event__part--home' + f'.event__part--{index}')
Но получаю HTML текстом. Как получить именно число?
Ответы (2 шт):
Автор решения: tomato-magnet-regulato
→ Ссылка
html_text ='<div class="event__part event__part--away event__part--1">14</div>\
<div class="event__part event__part--away event__part--1">31</div>\
<div class="event__part event__part--home event__part--2">25</div>\
<div class="event__part event__part--away event__part--2">14</div>\
<div class="event__part event__part--away event__part--3">19</div>\
<div class="event__part event__part--home event__part--3">25</div>\
<div class="event__part event__part--away event__part--4">31</div>\
<div class="event__part event__part--home event__part--4">15</div>'
import re
reg = re.compile('\d{2}') # То что я хочу извлечь из текста
new_number = list(map(int, reg.findall(html_text))) # Достаю двузначные числа, и перевожу их в integer
print(new_number)
>>> [14, 31, 25, 14, 19, 25, 31, 15]
Можете взять только строчку перевода в int -> list(map(int,LIST)).
Автор решения: Сергей Ш
→ Ссылка
z = [x.text for x in soup.findAll('div')]
#или
z = [x.text for x in soup.select('div')]
#или
z =[x.text for x in soup.select("div.event__part")]