স্ক্রিপ্ট ট্যাগগুলি এবং তার সমস্ত বিষয়বস্তু 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>'
'স্ক্রিপ্ট', 'আইএমজি' এর মতো আরও অনেক কিছু থেকে মুক্তি পেতে খুব দরকারী rid
decompose
এবং এর মধ্যে পার্থক্যটি extract
হ'ল পরেরটি মুছে ফেলা জিনিসটিকে ফিরিয়ে দেয়, তবে পূর্ববর্তী কেবল এটি ধ্বংস করে দেয়। সুতরাং এটি প্রশ্নের আরও সুনির্দিষ্ট উত্তর, তবে অন্যান্য পদ্ধতিগুলি কাজ করে।
remove
বিষয়বস্তু ছিল । অপরিবর্তিত ট্যাগ এবং ফর্ম্যাটিংয়ের এইচটিএমএল পরিষ্কার করার জন্য প্রায়শই ব্যবহৃত হয়।
( অফিশিয়াল ডকুমেন্টেশন ) এ বর্ণিত হিসাবে আপনি extract
অনুসন্ধানের সাথে মেলে এমন সমস্ত সাবট্রি সরানোর জন্য পদ্ধতিটি ব্যবহার করতে পারেন ।
import BeautifulSoup
a = BeautifulSoup.BeautifulSoup("<html><body><script>aaa</script></body></html>")
[x.extract() for x in a.findAll('script')]
extract
করার জন্য নির্দিষ্ট উপাদান নির্বাচন করা। [x.extract() for x in a.select('span.className')]