Python BeautifulSoup – find all class
Last Updated :
26 Nov, 2020
Prerequisite:- Requests , BeautifulSoup
The task is to write a program to find all the classes for a given Website URL. In Beautiful Soup there is no in-built method to find all classes.
Module needed:
- bs4: Beautiful Soup(bs4) is a Python library for pulling data out of HTML and XML files. This module does not come built-in with Python. To install this type the below command in the terminal.
pip install bs4
- requests: Requests allows you to send HTTP/1.1 requests extremely easily. This module also does not come built-in with Python. To install this type the below command in the terminal.
pip install requests
Methods #1: Finding the class in a given HTML document.
Approach:
- Create an HTML doc.
- Import module.
- Parse the content into BeautifulSoup.
- Iterate the data by class name.
Code:
Python3
html_doc =
from bs4 import BeautifulSoup
soup = BeautifulSoup( html_doc , 'html.parser' )
soup.find( class_ = "body" )
|
Output:
<p class="body">geeksforgeeks a computer science portal for geeks
</p>
Methods #2: Below is the program to find all class in a URL.
Approach:
- Import module
- Make requests instance and pass into URL
- Pass the requests into a Beautifulsoup() function
- Then we will iterate all tags and fetch class name
Code:
Python3
from bs4 import BeautifulSoup
import requests
class_list = set ()
page = requests.get( URL )
soup = BeautifulSoup( page.content , 'html.parser' )
tags = {tag.name for tag in soup.find_all()}
for tag in tags:
for i in soup.find_all( tag ):
if i.has_attr( "class" ):
if len ( i[ 'class' ] ) ! = 0 :
class_list.add( " " .join( i[ 'class' ]))
print ( class_list )
|
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...