Open In App

Remove all style, scripts, and HTML tags using BeautifulSoup

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: BeautifulSoup, Requests

Beautiful Soup is a Python library for pulling data out of HTML and XML files. In this article, we are going to discuss how to remove all style, scripts, and HTML tags using beautiful soup.

Required Modules:

  • bs4: Beautiful Soup (bs4) is a python library primarily used to extract data from HTML, XML, and other markup languages. It’s one of the most used libraries for Web Scraping. 
    Run the following command in the terminal to install this library-
pip install bs4
  • requests: This library is used for making HTTP requests in python.
    Run the following command in the terminal to install this library-
pip install requests

Approach:

  • Import bs4 library
  • Create an HTML doc
  • Parse the content into a BeautifulSoup object
  • Iterate over the data to remove the tags from the document using decompose() method
  • Use stripped_strings() method to retrieve the tag content
  • Print the extracted data

Implementation:

Python3




# Import Module
from bs4 import BeautifulSoup
 
# HTML Document
HTML_DOC = """
              <html>
                <head>
                    <title> Geeksforgeeks </title>
                    <style>.call {background-color:black;} </style>
                    <script>getit</script>
                </head>
                <body>
                    is a
                    <div>Computer Science portal.</div>
                </body>
              </html>
            """
 
# Function to remove tags
def remove_tags(html):
 
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
 
    for data in soup(['style', 'script']):
        # Remove tags
        data.decompose()
 
    # return data by retrieving the tag content
    return ' '.join(soup.stripped_strings)
 
 
# Print the extracted data
print(remove_tags(HTML_DOC))


Output:

Geeksforgeeks is a Computer Science portal.

Removing all style, scripts, and HTML tags from an URL

Approach:

  • Import bs4 and requests library
  • Get content from the given URL using requests instance
  • Parse the content into a BeautifulSoup object
  • Iterate over the data to remove the tags from the document using decompose() method
  • Use stripped_strings() method to retrieve the tag content
  • Print the extracted data

Implementation:

Python3




# Import Module
from bs4 import BeautifulSoup
import requests
 
# Website URL
 
# Page content from Website URL
page = requests.get(URL)
 
# Function to remove tags
def remove_tags(html):
 
    # parse html content
    soup = BeautifulSoup(html, "html.parser")
 
    for data in soup(['style', 'script']):
        # Remove tags
        data.decompose()
 
    # return data by retrieving the tag content
    return ' '.join(soup.stripped_strings)
 
 
# Print the extracted data
print(remove_tags(page.content))


Output:



Last Updated : 06 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads