Delightful Soup is een Python-bibliotheek voor het ophalen van informatie uit HTML- en XML-records. Het werkt met de parser van uw voorkeur om informele methoden te geven voor het verkennen, kijken en veranderen van de parseboom. Het spaart regelmatig software-ingenieurs uren of lange stukken werk.

Deze richtlijnen vertegenwoordigen elk belangrijk element van Excellent Soep 4, met modellen. Ik geef u wat de bibliotheek nuttig is voor, hoe het werkt, hoe het te gebruiken, hoe het te laten doen wat je nodig hebt, en wat te doen als het je wensen schaadt.

De modellen in deze documentatie moeten in Python 2.7 en Python 3.2 op dezelfde manier werken.

Mogelijk zoekt u de documentatie voor Lovely Soup 3. Mits dit waar is, moet u zich realiseren dat Lekkere Soep 3 nooit meer wordt gemaakt en dat Excellente Soep 4 wordt voorgeschreven voor elke nieuwe onderneming. In het geval dat u de contrasten tussen Excellente Soep 3 en Schitterende Soep 4 moet achterhalen, zie Porting code naar BS4.

Deze documentatie is door Wonderful Soup klanten omgezet in verschillende dialecten:

Dit document is natuurlijk ook in het Chinees beschikbaar.

Deze pagina is beschikbaar in het Japans (externe link)

문서는 한국어 번역도 가능합니다. (외부 링크)

een HTML-document dat als voorbeeld zal worden gebruikt in dit document. Het is onderdeel van een verhaal uit Alice in Wonderland:

html_doc = “”

< html><head><title>Het verhaal van de slaapzaal</titel></head></head>

< lichaam>

< p klasse=”titel”><b>Het verhaal van de Slaapmuis</b></p>

< p klasse=”verhaal” >Op een gegeven moment waren er drie kleine zusjes; en hun namen waren

< a href=”http://example.com/elsie” klasse=”zuster” id=”link1″>Elsie</a>,

< a href=”http://example.com/lacie” klasse=”zuster” id=”link2″> Lacie</a> en

< a href=”http://example.com/tillie” klasse=”zuster” id=”link3″>Tillie</a>;

en ze leefden op de bodem van een waterput.</p>

< p klasse=”verhaal”>…</p>

“””

Door het document “drie zusters” door BeautifulSoup te laten lopen, krijgen we een BeautifulSoup object, dat het document als een genestelde datastructuur weergeeft:

van bs4 importeren BeautifulSoup

soep = BeautifulSoup(html_doc, ‘html.parser’)

druk (soep.prettify())

# < html>

# < hoofd>

# < titel>

# The Dormouse’s story

# </titel>

# </hoofd>

# < lichaam>

# < p class=”title”>

#    < b>

# The Dormouse’s story

#    </b>

#   </p>

# < p klasse=”verhaal” >

# Ooit waren er drie kleine zusjes; en hun namen waren

# < een klasse=”zuster” href=”http://example.com/elsie” id=”link1″>

# Elsie

#    </a>

#    ,

# < een klasse=”zuster” href=”http://example.com/lacie” id=”link2″>

# Lacie

#    </a>

# en

# < een klasse=”zuster” href=”http://example.com/tillie” id=”link2″>

# Tillie

#    </a>

# en ze leefden op de bodem van een put.

#   </p>

# < p klasse=”verhaal” >

#    …

#   </p>

# </lichaam>

# </html>

Hier zijn enkele eenvoudige manieren om door die datastructuur te navigeren:

soep.titel

# < titel>Het verhaal van de Slaapmuis</titel>

soeptitel

# u’title’

soeptitel

# u’The Dormouse’s story”…

soeptitel.ouder.naam

# u’head’

soep.p

# < p klasse=”titel”><b>Het verhaal van de Slaapmuis</b></p>

soep.p[‘klasse’]

# u’title’

soep.een

# < een klasse=”zuster” href=”http://example.com/elsie” id=”link1″>Elsie</a>

soep.vinden_allemaal(‘a’)

# [< een klasse=”zuster” href=”http://example.com/elsie” id=”link1″>Elsie</a>,

# < een klasse=”zuster” href=”http://example.com/lacie” id=”link2″> Lacie</a>,

# < een klasse=”zuster” href=”http://example.com/tillie” id=”link3″>Tillie</a>”]

soup.find(id=”link3″)

# < een klasse=”zuster” href=”http://example.com/tillie” id=”link3″>Tillie</a>

Een veel voorkomende taak is het extraheren van alle URL’s die binnen de <a> tags van een pagina worden gevonden:

voor link in soup.find_all(‘a’):

    print (link.get(‘href’))

# http://example.com/elsie

# http://example.com/lacie

# http://example.com/tillie

Een andere veel voorkomende taak is het uitpakken van alle tekst op een pagina:

print(soup.get_text())

# The Dormouse’s story

#

# The Dormouse’s story

#

# Ooit waren er drie kleine zusjes; en hun namen waren

# Elsie,

# Lacie en

# Tillie;

# en ze leefden op de bodem van een put.

#

# …

Het installeren van mooie soep

Als u gebruik maakt van een doorlopende vorm van Debian of Ubuntu Linux, kunt u Delightful Soup introduceren met de system package manager:

$ in staat om python-bs4 te introduceren (voor Python 2)

$ adept krijg introduceer python3-bs4 (voor Python 3)

Wonderful Soup 4 wordt verspreid via PyPi, dus in het geval dat je het niet kunt introduceren met een stengelverpakker, kun je het introduceren met easy_install of pip. De naam van de bundel is beautifulsoup4, en een vergelijkbare bundel heeft betrekking op Python 2 en Python 3. Zorg ervoor dat u de juiste weergave van pip of easy_install gebruikt voor uw Python-vorm (deze kunnen pip3 en easy_install3 afzonderlijk worden genoemd voor het geval u Python 3 gebruikt).