Etiketleri ve tüm içeriklerini BeautifulSoup ile HTML'den kaldırılabilir mi, yoksa Normal İfadeleri mi kullanmalıyım yoksa başka bir şey mi kullanmalıyım?Komut dosyası etiketlerini BeautifulSoup ile silebilir miyim?
( official documentation) belirtildiği üzerecevap
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<script>a</script>baba<script>b</script>', 'lxml')
>>> [s.extract() for s in soup('script')]
>>> soup
baba
Aramayı eşleşen tüm alt ağacı kaldırmak için extract
yöntemi kullanabilirsiniz.
import BeautifulSoup
a = BeautifulSoup.BeautifulSoup("<html><body><script>aaa</script></body></html>")
[x.extract() for x in a.findAll('script')]
: doğru cevaptır. decompose()
Farklı yollar kullanabilirsiniz, ancak decompose
yerinde çalışır.
Örnek kullanım:
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>'
Oldukça kullanışlı
böylece vb 'script', 'img' gibi döküntü kurtulmak için.'decompose' ile' extract' arasındaki fark, ikincisinin kaldırılan şeyi geri döndürmesidir, oysaki sadece onu yok eder. Yani bu soruna daha kesin bir cevaptır, ancak diğer yöntemler işe yarar. – Mike
Decompose, komut dosyası etiketlerinin içeriğini kaldırmaz, yalnızca etiketleri kaldırır. –
Hem yorumlarınızla hemfikirim. İşte bu yüzden OP'nin “kaldırılması” içeriğindeki doğru cevabı söyledim. Genellikle gereksiz etiketlerin ve biçimlendirmenin HTML'sini temizlemek için kullanılır. – Vangel
- 1. BeautifulSoup ile html komut dosyası ve stil etiketlerinden sıyrılıyor mu?
- 2. .ics dosyaları ile eski olayları silebilir miyim?
- 3. Komut dosyası etiketlerini AJAX yoluyla yükleme
- 4. XCode: Test hedefini silebilir miyim?
- 5. Mesaj alanını Logstash'dan silebilir miyim?
- 6. Genel HTML klasöründeki varsayılan dosyaları silebilir miyim?
- 7. jQuery tarafından komut dosyası oluşturabilir miyim?
- 8. Arama ve HTML ile Değiştir BeautifulSoup ile
- 9. eshell ile komut dosyası oluşturma
- 10. Datagrip ile tüm veritabanının komut dosyası şeması
- 11. BeautifulSoup
- 12. BeautifulSoup
- 13. BeautifulSoup
- 14. BeautifulSoup,
- 15. BeautifulSoup
- 16. FlexBuilder'ı bir uzantı yazmadan komut dosyası yapabilir miyim?
- 17. golang'daki bir yapı örneğinin değerlerini dinamik olarak silebilir miyim?
- 18. BeautifulSoup
- 19. BeautifulSoup
- 20. beautifulsoup ile çok sayıda sınıf
- 21. Öznitelik değeri beautifulsoup ile ayıklanıyor
- 22. Android stüdyosunda test yapmazsam androidTest klasörünü silebilir miyim?
- 23. Eski Android SDK Oluşturma araçları paketlerini silebilir miyim?
- 24. Android telefondaki hesapları ve senkronizasyonu program aracılığıyla silebilir miyim?
- 25. DynamoDB Eşleştiricisi'ni kullanarak bir öğeyi önce yüklemeden silebilir miyim?
- 26. Windows Azure Table Storage'da bir bölümün tamamını silebilir miyim?
- 27. Subversion yapmam durumunda bir komut dosyası çalıştırabilir miyim?
- 28. Google Apps Komut Dosyası kodunu bir Chrome uzantısından çalıştırabilir miyim?
- 29. Powershell'de [alias ("db")] olan parametreli bir komut dosyası oluşturabilir miyim?
- 30. Java Komut Dosyası ile ilgili hatalar
Kaldırılacak ek etiketlere zincirlemenin en iyi yolu nedir? Şu anda, komutları birbiri ardına tekrarladığım zaman, [s.extract() 'da çorbada (' script ')] sonra [s.extract()' da çorbada ('iframe')] vb. ama ben onları (örneğin 'iframe', 'script')] için ss. – Ila
@Ali Çorbalarda [s.extract() için [[iframe ',' script ']) kullanmak zorundasınız.] 'Birden fazla etiket kullanmak için parametre –
@ FábioDiniz olmalıdır. Şöyle bir şey çıkardım: '' baba ''? Aynı mı? – user2883071