2

例:

import bs4

html = '''
<div class="short-description std ">
<em>Android Apps Security</em> provides guiding principles for how to 
best design and develop Android apps with security in mind. The book explores 
techniques that developers can use to build additional layers of security into 
their apps beyond the security controls provided by Android itself.             
<p class="scroll-down">∨ <a href="#main-desc" onclick="Effect.ScrollTo(
'main-desc', { duration:'0.2'}); return false;">Full Description</a> ∨&lt;/p></div>
'''
soup = bs4.BeautifulSoup(html)

から次の(美しいスープオブジェクト)を取得するにはどうすればよいsoupですか?

<div class="short-description std ">
<em>Android Apps Security</em> provides guiding principles for how to 
best design and develop Android apps with security in mind. The book explores 
techniques that developers can use to build additional layers of security into 
their apps beyond the security controls provided by Android itself.             
</div>
4

1 に答える 1

4

単純に検索してください:

soup.find('p', class_='scroll-down')

pクラスを使用して検索を制限しましたが、ここでは少し冗長な要素が他にないためです。

代わりに、タグを削除する必要がある場合は、上記のメソッドを使用して最初にタグを見つけ、それを呼び出し.extract()てドキュメントから削除します。

>>> soup.find('p', class_='scroll-down').extract()
<p class="scroll-down"> <a href="#main-desc" onclick="Effect.ScrollTo(
'main-desc', { duration:'0.2'}); return false;">Full Description</a> </p>
>>> print soup

<div class="short-description std ">
<em>Android Apps Security</em> provides guiding principles for how to 
best design and develop Android apps with security in mind. The book explores 
techniques that developers can use to build additional layers of security into 
their apps beyond the security controls provided by Android itself.             
</div>

2 つのこと: 削除されたタグは.extract()メソッドから返されます。後で使用するために保存できます。タグはドキュメントから完全に削除されます。ドキュメントにまだ必要な場合は、後で手動で再度追加する必要があります。

または、参照を返さずにドキュメントからタグを完全に削除する.decompose()メソッドを使用することもできます。その後、タグは永久に失われます。

于 2012-11-21T12:50:42.843 に答える