Wednesday, April 6, 2011

Adding text to p tag in Beautiful Soup

I was wondering if anyone knew how to add text to a tag (p, b -- any tag where you might want to include character data). The documentation mentions no where how you might do this.

From stackoverflow
  • I'm not sure exactly if this is what you want, but maybe it's a start...

    from BeautifulSoup import BeautifulSoup, NavigableString
    
    html = "<p></p>"
    soup = BeautifulSoup(html)
    ptag = soup.find('p')
    ptag.insert(0, NavigableString("new"))
    print ptag
    

    Outputs

    <p>new</p>
    

    The documentations shows a few more similar examples: http://www.crummy.com/software/BeautifulSoup/documentation.html#Modifying%20the%20Parse%20Tree

  • >>> import BeautifulSoup
    >>> b=BeautifulSoup.BeautifulSoup("<p></p><p></p>")
    >>> for t,s in zip(b,[u'hello',u'world']):
    ...     t.contents.append(BeautifulSoup.NavigableString(s))
    ... 
    >>> b
    <p>hello</p><p>world</p>
    

0 comments:

Post a Comment