Hermosa sopa ignora el html interno

Tengo el siguiente html, donde solo quiero obtener el nombre del producto e ignorar el resto del html. ¿Cómo puedo hacer esto?

Quiero esto como salida usando beautifulsoup Apple iPhone 4 Verizon

  <h1 itemprop="itemreviewed">Apple iPhone 4 Verizon    
                        <div class="right">
  <span class="s_button_follow_special" style="display: block">
  <a href="javascript:;" style="display: block" onclick="subscribe(this, 1, 5132);" class="follow_1_5132 s_button_2 s_button_follow" title="Follow Apple iPhone 4 Verizon"><em class="s_icon s_icon_follow"></em>Follow</a>
  <a class="s_button_2 s_button_follow_arrow" href="javascript:;" onclick="subscribe(this, 1, 5132, '', 2);"></a>
  </span>
  <a href="javascript:;" style="display: none" onclick="subscribe(this, 1, 5132);" class="unfollow_1_5132 s_button_2 s_button_follow_disabled s_button_following" title="Unfollow Apple iPhone 4 Verizon"><span><em class="s_icon s_icon_following"></em>Following</span></a>
  </div>
  </h1>


  header= soup('h1', {'itemprop' : 'itemreviewed'})

preguntado el 31 de julio de 12 a las 14:07

he dado al final del ejemplo -

2 Respuestas

algo como

soup = BeautifulSoup(<h1 ....)
header = soup.h1['itemprop'].contents

Respondido 31 Jul 12, 14:07

Creo que el .contents obtendrá todo el contenido de la etiqueta, incluido todo el html, como el div, etc. Podría intentar .contents[0] sin embargo, para obtener solo el primer elemento. - andres gorcester

Los programas Apple iPhone 4 Verizon el texto es su propio elemento en el árbol de análisis, separado de cualquier otro; puede seleccionarlo buscando un elemento cercano y navegando con nextSibling, previousSibling, next or previous.

Entonces esto debería funcionar:

header = soup.find('h1', itemprop='itemreviewed')
text = header.next

Respondido 31 Jul 12, 14:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.