Beautiful Soup – contents Property


Beautiful Soup – contents Property



”;


Method Description

The contents property is available with the Soup object as well as Tag object. It returns a list everything that is contained inside the object, all the immediate child elements and text nodes (i.e. Navigable String).

Syntax


Tag.contents

Return value

The contents property returns a list of child elements and strings in the Tag/Soup object,.

Example 1

Contents of a tag object −


from bs4 import BeautifulSoup

markup = ''''''
   <div id="Languages">
      <p>Java</p>
      <p>Python</p>
      <p>C++</p>
   </div>
''''''
soup = BeautifulSoup(markup, ''html.parser'')

tag = soup.div
print (tag.contents)

Output


[''n'', <p>Java</p>, ''n'', <p>Python</p>, ''n'', <p>C++</p>, ''n'']

Example 2

Contents of the entire document −


from bs4 import BeautifulSoup, NavigableString

markup = ''''''
   <div id="Languages">
      <p>Java</p> <p>Python</p> <p>C++</p>
   </div>
''''''
soup = BeautifulSoup(markup, ''html.parser'')

print (soup.contents)

Output


[''n'', <div id="Languages">
<p>Java</p> <p>Python</p> <p>C++</p>
</div>, ''n'']

Example 3

Note that a NavigableString object doesn”t have contents property. It throws AttributeError if we try to access the same.


from bs4 import BeautifulSoup, NavigableString

markup = ''''''
   <div id="Languages">
      <p>Java</p> <p>Python</p> <p>C++</p>
   </div>
''''''
soup = BeautifulSoup(markup, ''html.parser'')
tag = soup.p
s=tag.contents[0]
print (s.contents)

Output


Traceback (most recent call last):
  File "C:UsersuserBeautifulSoup2.py", line 11, in <module>
    print (s.contents)
           ^^^^^^^^^^
  File "C:UsersuserBeautifulSoupLibsite-packagesbs4element.py", line 984, in __getattr__
    raise AttributeError(
AttributeError: ''NavigableString'' object has no attribute ''contents''

Advertisements

”;

Leave a Reply

Your email address will not be published. Required fields are marked *