Je souhaite supprimer le div
spécifique de soup
objet.
J'utilise python 2.7
Et bs4
.
Selon la documentation, nous pouvons utiliser div.decompose()
.
Mais cela supprimerait tous les div
. Comment puis-je supprimer un div
avec une classe spécifique?
Bien sûr, vous pouvez simplement select
, find
, ou find_all
le div
s d'intérêt de la manière habituelle, puis appelez decompose()
sur ces divs.
Par exemple, si vous souhaitez supprimer toutes les divs avec la classe sidebar
, vous pouvez le faire avec
# replace with `soup.findAll` if you are using BeautifulSoup3
for div in soup.find_all("div", {'class':'sidebar'}):
div.decompose()
Si vous souhaitez supprimer un div avec un id
spécifique, par exemple main-content
, Vous pouvez le faire avec
soup.find('div', id="main-content").decompose()
Cela vous aidera à:
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
Production:
<a>This is not div <div class="1">This is div 1</div></a>
Faites-moi savoir si cela aide
J'espère que cela vous aidera:
from bs4 import BeautifulSoup
from bs4.element import Tag
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")
for tag in soup.select('div.1'):
tag.decompose()
print(soup)