¿Cómo cambiar el nombre de la etiqueta con BeautifulSoup?

Estoy usando python + BeautifulSoup para analizar un documento HTML.

Ahora necesito reemplazar todos los elementos

en un documento HTML, con

.

¿Cómo puedo cambiar el nombre de la etiqueta, sin cambiar nada más en el documento?

No sé cómo está accediendo a la tag pero lo siguiente funciona para mí:

 import BeautifulSoup if __name__ == "__main__": data = """  

some title

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
  • Vestibulum auctor dapibus neque.
""" soup = BeautifulSoup.BeautifulSoup(data) h2 = soup.find('h2') h2.name = 'h1' print soup

La salida del comando de print soup de print soup es:

  

some title

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
  • Vestibulum auctor dapibus neque.

Como puedes ver, h2 convirtió en h1 . Y nada más en el documento cambió. Estoy usando Python 2.6 y BeautifulSoup 3.2.0.

Si tiene más de un h2 y desea cambiarlos todos, puede simplemente hacer:

 soup = BeautifulSoup.BeautifulSoup(your_data) while True: h2 = soup.find('h2') if not h2: break h2.name = 'h1' 

Es solo

 tag.name = 'new_name' 

De los documentos de BeautifulSoup

 from BeautifulSoup import BeautifulSoup, Tag soup = BeautifulSoup("

TEXTHERE

") tag = Tag(soup, "h1", [("class", "someclass")]) tag.insert(0, "TEXTHERE") soup.h2.replaceWith(tag) print soup #

TEXTHERE