2015-08-18 17 views

Odpowiedz

11

Oczywiście, można po prostu select, find lub find_all się div s to w zwykły sposób, a następnie zadzwonić decompose() na tych div ty.

Na przykład, jeśli chcesz usunąć wszystkie div z klasą sidebar, można to zrobić z

# replace with `soup.findAll` if you are using BeautifulSoup3 
for div in soup.find_all("div", {'class':'sidebar'}): 
    div.decompose() 

Jeśli chcesz usunąć div z określonym id, powiedzmy main-content można zrobić z

soup.find('div', id="main-content").decompose() 
0
from BeautifulSoup import BeautifulSoup 
    >>> soup = BeautifulSoup('<body><div>1</div><div class="comment"><strong>2</strong></div></body>') 
    >>> for div in soup.findAll('div', 'comment'): 
    ... div.extract() 
    ... 
    <div class="comment"><strong>2</strong></div> 
    >>> soup 
    <body><div>1</div></body> 
+0

ekstrakt funkcja robi usunąć div z pierwotnej zupy. –

+0

Czy próbowałeś powyższego kodu? – 3ppps

4

ta pomoże ci:

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 

wyjściowa:

<a>This is not div <div class="1">This is div 1</div></a> 

Daj mi znać, jeśli to pomaga

+0

tak. zadziałało. –

Powiązane problemy