#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))