Чтобы найти оба числа, я бы сделал
text = '''<span class="vote-actions">
<a class="btn btn-default vote-action-good">
<span class="icon thumb-up black black-hover"> </span>
<span class="rating-inbtn">215</span>
</a>
<a class="btn btn-default vote-action-bad">
<span class="icon thumb-down grey black-hover"> </span>
<span class="rating-inbtn">82</span>
</a>
</span>'''
import re
a = re.findall('rating-inbtn">(\d+)', text)
print(a)
['215', '82']
В HTML я вижу, что первое число - Up
, а второе - Down
, поэтому мне не нужен лучший метод.
up = a[0]
down = a[1]
Если этого недостаточно, я бы использовал HTML-парсер
text = '''<span class="vote-actions">
<a class="btn btn-default vote-action-good">
<span class="icon thumb-up black black-hover"> </span>
<span class="rating-inbtn">215</span>
</a>
<a class="btn btn-default vote-action-bad">
<span class="icon thumb-down grey black-hover"> </span>
<span class="rating-inbtn">82</span>
</a>
</span>'''
import lxml.html
soup = lxml.html.fromstring(text)
up = soup.xpath('//a[@class="btn btn-default vote-action-good"]/span[@class="rating-inbtn"]')
up = up[0].text
print(up)
down = soup.xpath('//a[@class="btn btn-default vote-action-bad"]/span[@class="rating-inbtn"]')
down = down[0].text
print(down)