क्या स्क्रिप्ट टैग और उनकी सभी सामग्री HTML से ब्यूटीफुलसोप से हटाई जा सकती है, या मुझे रेग्युलर एक्सप्रेशंस या कुछ और का उपयोग करना होगा?
जवाबों:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<script>a</script>baba<script>b</script>', 'lxml')
>>> for s in soup.select('script'):
>>> s.extract()
>>> soup
baba
[s.extract() for s in soup(['iframe', 'script'])]
ध्यान देना होगा कि कई टैग का उपयोग करने के लिए, पैरामीटर की एक सूची होनी चाहिए
'<script class="blah">a</script>baba<script id="blahhhh">b</script>'
:? क्या यह वही है?
<html><head></head><body><p>baba</p></body></html>
उन लोगों के लिए अद्यतित उत्तर जिन्हें भविष्य में संदर्भ की आवश्यकता हो सकती है: सही उत्तर है।
decompose()
आप विभिन्न तरीकों का उपयोग कर सकते हैं लेकिनdecompose
इन-प्लेस काम करता है।
उदाहरण का उपयोग:
soup = BeautifulSoup('<p>This is a slimy text and <i> I am slimer</i></p>')
soup.i.decompose()
print str(soup)
#prints '<p>This is a slimy text and</p>'
To स्क्रिप्ट ’, 'इम्ग’ जैसी डिटर्जेंट से छुटकारा पाने के लिए बहुत उपयोगी और आगे।
decompose
और extract
है कि बाद रिटर्न बात यह है कि हटा दिया गया था, जबकि पूर्व बस इसे नष्ट कर देता है। तो यह सवाल का अधिक सटीक उत्तर है, लेकिन अन्य तरीके काम करते हैं।
remove
सामग्री के अनुसार था । अक्सर अनावश्यक टैग और स्वरूपण के HTML की सफाई के लिए उपयोग किया जाता है।
जैसा कि ( आधिकारिक प्रलेखन ) में कहा गया है कि आप extract
खोज से मेल खाने वाले सभी उपप्रकार को हटाने के लिए विधि का उपयोग कर सकते हैं ।
import BeautifulSoup
a = BeautifulSoup.BeautifulSoup("<html><body><script>aaa</script></body></html>")
[x.extract() for x in a.findAll('script')]