Güzel Çorba - Bir belgenin yalnızca bölümünü ayrıştırma

Beautifulsoup4 kullanarak belirli bilgi türlerini (yalnızca <a> etiketleri) çıkarmak istediğiniz birden çok durum vardır. Beautifulsoup'taki SoupStrainer sınıfı, gelen bir belgenin yalnızca belirli bir bölümünü ayrıştırmanıza olanak tanır.

Bunun bir yolu, bir SoupStrainer oluşturmak ve bunu Beautifulsoup4 yapıcısına parse_only argümanı olarak aktarmaktır.

Çorba Süzgeç

SoupStrainer, BeautifulSoup'a hangi parçaların çıkardığını söyler ve ayrıştırma ağacı yalnızca bu öğelerden oluşur. Gerekli bilgilerinizi HTML'nin belirli bir kısmına daraltırsanız, bu arama sonucunuzu hızlandıracaktır.

product = SoupStrainer('div',{'id': 'products_list'})
soup = BeautifulSoup(html,parse_only=product)

Yukarıdaki kod satırları, yalnızca bir ürün sitesindeki, bir etiket alanının içinde olabilecek başlıkları ayrıştırır.

Benzer şekilde, yukarıda olduğu gibi, bir HTML etiketinden belirli bilgileri ayrıştırmak için diğer çorbaStrainer nesnelerini kullanabiliriz. Aşağıda örneklerden bazıları verilmiştir -

from bs4 import BeautifulSoup, SoupStrainer

#Only "a" tags
only_a_tags = SoupStrainer("a")

#Will parse only the below mentioned "ids".
parse_only = SoupStrainer(id=["first", "third", "my_unique_id"])
soup = BeautifulSoup(my_document, "html.parser", parse_only=parse_only)

#parse only where string length is less than 10
def is_short_string(string):
   return len(string) < 10
   
only_short_strings =SoupStrainer(string=is_short_string)