I want to delete the specific div
from soup
object.
I am using python 2.7
and bs4
.
According to documentation we can use div.decompose()
.
But that would delete all the div
. How can I delete a div
with specific class?
find() method The find method is used for finding out the first tag with the specified name or id and returning an object of type bs4. Example: For instance, consider this simple HTML webpage having different paragraph tags.
Sure, you can just select
, find
, or find_all
the div
s of interest in the usual way, and then call decompose()
on those divs.
For instance, if you want to remove all divs with class sidebar
, you could do that with
# replace with `soup.findAll` if you are using BeautifulSoup3 for div in soup.find_all("div", {'class':'sidebar'}): div.decompose()
If you want to remove a div with a specific id
, say main-content
, you can do that with
soup.find('div', id="main-content").decompose()
This will help you:
from bs4 import BeautifulSoup markup = '<a>This is not div <div class="1">This is div 1</div><div class="2">This is div 2</div></a>' soup = BeautifulSoup(markup,"html.parser") a_tag = soup soup.find('div',class_='2').decompose() print a_tag
Output:
<a>This is not div <div class="1">This is div 1</div></a>
Let me know if it helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With