Как я могу извлечь число в круглых скобках в этом теге span?

#python #web-scraping #beautifulsoup #request #numbers

#python #веб-очистка #beautifulsoup #запрос #числа

Вопрос:

Я пытаюсь получить значение в теге ниже. Более конкретно, я хочу, чтобы число находилось между круглыми скобками.

 <span class="bv-rating-label bv-text-link">   (12)  </span>
 

строка в моем скрипте, которая не возвращает правильный ответ:

 'reviews' : item.find('span', {'class': 'bv-rating-label bv-text-link'}).text
 

Я также пытался

 'reviews' : int(item.find('span', {'class': 'bv-rating-label bv-text-link'}).text)
 

Любые рекомендации приветствуются!

Ответ №1:

Чтобы отфильтровать только цифры и удалить круглые скобки, вы можете использовать .isdigit() метод.

 result = ''.join(
    tag for tag in soup.find('span', class_='bv-rating-label bv-text link').text
    if tag.isdigit()
    )
>>> print(result)
12
 

Ответ №2:

Регулярное выражение на помощь.

 import re
string_='<span class="bv-rating-label bv-text-link">   (12)  </span>'
num = int(re.search(r'>s*((d ))s*</span>', string_)[1])
 

num Содержит требуемое число в формате int

Ответ №3:

 import bs4
import re

'reviews' : item.find('span', {'class': 'bv-rating-label bv-text-link'}).text

for item in items:
    print(re.sub(r" ?([^)] )", "", item))