Tengo un objeto de sopa como:
<span class="nowrap"> 2 633 <span class="currency rub">q</span> </span>Hice:
price = item.find('span', class_='nowrap') price_x = price.text.strip() print(price_x)Resultado: 2 633 q.
¿Cómo puedo obtener sin 'q'. Sólo: 2 633
La razón es que .text te da todas las cadenas dentro de la etiqueta concatenadas. Deberías usar next_element en su lugar:
from bs4 import BeautifulSoup text = """<span class="nowrap"> 2 633 <span class="currency rub">q</span> </span>""" soup = BeautifulSoup(text, 'html.parser') price = soup.find('span', class_='nowrap') next_element = price.next_element print(repr(next_element.strip()))producción:
'2 633'