pythonでbeautifulsoupを使用していて、特定のタグで囲まれた文字列からすべてを削除したいそれ。この例では、DOCAのテキストでその内部にtypeタグを持つすべてのドキュメントを削除したいと考えています。特定のタグとテキストを含むすべてのタグ/コンテンツを削除するPython beautifulsoup
<body>
<document>
<type>DOCA
<sequence>1
<filename>DOCA.htm
<description>FORM DOCA
<text>
<title>Form DOCA</title>
<h5 align="left"><a href="#toc">Table of Contents</a></h5>
</document>
<document>
<type>DOCB
<sequence>1
<filename>DOCB.htm
<description>FORM DOCB
<text>
<title>Form DOCB</title>
<h5 align="left"><a href="#toc">Table of Contents</a></h5>
</document>
<body>
私は何をしたいことは<type>
のDOCAを持っているすべての<document>
を削除します:
のは、私はこのような何かを持っているとしましょう。私は、次のことを試してみましたが、それは動作しません:
>>print(soup.find('document').find('type', text = re.compile('DOCA.*')))
None
方法は、大規模な文書のための速いでしょうか?このラムダを使うか、@ COLDSPEEDの答えのようにループしますか? – cullan
私はそれについては分かりません。 @COLDSPEEDは2つのループを使用しますが、これは少し遅くする必要があります。一方、彼のコードでは要素が即座に削除され、スープオブジェクトはクリーンアップされますが、コードで不要な項目のリストが生成されます –
@cullan 1.23 ms(鉱山)vs 1.33 ms +(他のオーバーヘッドを削除する) –