স্ক্রিপ্ট ট্যাগগুলি এবং তার সমস্ত বিষয়বস্তু 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')]