Skip to content
Related Articles

Related Articles

Extract the HTML code of the given tag and its parent using BeautifulSoup
  • Last Updated : 16 Mar, 2021

In this article, we will discuss how to extract the HTML code of the given tag and its parent using BeautifulSoup.

Modules Needed

First, we need to install all these modules on our computer.

  • BeautifulSoup: Our primary module contains a method to access a webpage over HTTP.
pip install bs4
  • lxml: Helper library to process webpages in python language.
pip install lxml
  • requests: Makes the process of sending HTTP requests flawless.the output of the function.
pip install requests

Scraping A Sample Website

  • We import our beautifulsoup module and requests. We declared Header and added a user agent. This ensures that the target website we are going to web scrape doesn’t consider traffic from our program as spam and finally gets blocked by them.

Python3




# importing the modules
from bs4 import BeautifulSoup
import requests
  
# URL to the scraped
  
# getting the contents of the website and parsing them
webpage = requests.get(URL)
soup = BeautifulSoup(webpage.content, "lxml")
  • Now to target the element about which you want to get the info right click it and click inspect element. Then from the inspect element window try to find an HTML attribute that is unique to others. Most of the time it’s the Id of the element.

Here to extract the HTML of the title of the site, we can extract this easily using the id of the title.



Python3




# getting the h1 with id as firstHeading and printing it
title = soup.find("h1", attrs={"id": 'firstHeading'})
print(title)
  • Now extracting the content of the concerned tag, we can simply use the .get_text() method. The implementation would be as below:

Python3




# getting the text/content inside the h1 tag we
# parsed on the previous line
cont = title.get_text()
print(cont)
  • Now to extract the HTML of the parent element of a concerning element, let’s take an example of a span having the ID “Machine_learning_approaches”.

We need to extract it that displays the HTML in lists of lists form.

Python3




# getting the HTML of the parent parent of 
# the h1 tag we parsed earlier
parent = soup.find("span"
                   attrs={"id": 'Machine_learning_approaches'}).parent()
print(parent)

Below is the complete program:

Python3




# importing the modules
from bs4 import BeautifulSoup 
import requests 
  
# URL to the scraped
  
# getting the contents of the website and parsing them
webpage = requests.get(URL) 
soup = BeautifulSoup(webpage.content, "lxml")
  
# getting the h1 with id as firstHeading and printing it
title = soup.find("h1", attrs={"id": 'firstHeading'})
print(title)
  
# getting the text/content inside the h1 tag we 
# parsed on the previous line
cont = title.get_text()
print(cont)
  
# getting the HTML of the parent parent of 
# the h1 tag we parsed earlier
parent = soup.find("span"
                   attrs={"id": 'Machine_learning_approaches'}).parent()
print(parent)

Output:

You can also refer to this video for an explanation:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :