div
オブジェクトから特定のsoup
を削除したい。
_python 2.7
_および_bs4
_を使用しています。
ドキュメントによると、div.decompose()
を使用できます。
しかし、それはすべてのdiv
を削除します。特定のクラスを持つdiv
を削除するにはどうすればよいですか?
もちろん、 select
、 find
、または _find_all
_div
sを通常の方法で使用し、それらのdivで decompose()
を呼び出します。
たとえば、クラスsidebar
を持つすべてのdivを削除する場合は、次のようにします。
_# replace with `soup.findAll` if you are using BeautifulSoup3
for div in soup.find_all("div", {'class':'sidebar'}):
div.decompose()
_
特定のid
、たとえば_main-content
_でdivを削除する場合は、次のようにします。
_soup.find('div', id="main-content").decompose()
_
これはあなたを助けます:
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
出力:
<a>This is not div <div class="1">This is div 1</div></a>
役立つかどうか教えてください
それが役立つことを願っています:
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)