Beautiful Soup - Analisi della sola sezione di un documento

Ci sono molte situazioni in cui vuoi estrarre tipi specifici di informazioni (solo tag <a>) usando Beautifulsoup4. La classe SoupStrainer in Beautifulsoup ti consente di analizzare solo una parte specifica di un documento in arrivo.

Un modo è creare un SoupStrainer e passarlo al costruttore Beautifulsoup4 come argomento parse_only.

SoupStrainer

Un SoupStrainer dice a BeautifulSoup quali parti vengono estratte e l'albero di analisi consiste solo di questi elementi. Se restringi le informazioni richieste a una parte specifica dell'HTML, i risultati della ricerca verranno accelerati.

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

Le righe di codice sopra analizzano solo i titoli del sito di un prodotto, che potrebbe trovarsi all'interno di un campo tag.

Allo stesso modo, come sopra, possiamo usare altri oggetti soupStrainer, per analizzare informazioni specifiche da un tag HTML. Di seguito sono riportati alcuni esempi:

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)