Webscraping-laboratorium

Fra rå HTML til strukturerede data

← Til værktøjerne

Laboratorium · Læs · Find · Strukturér

Gør webtekst til data

En browser viser en flot side, men Python kan hente den samme side som rå HTML-tekst. Med requests henter vi teksten, og med BeautifulSoup finder vi de tags, klasser og attributter, som indeholder de data, vi leder efter.

Din missionFølg dataenes rejse: fra HTML-tags og DOM-træ til citater, forfattere, bogtitler, priser og tabeller.
1

HTML er struktur

<h1>, <p> og <a> fortæller browseren, hvad indholdet er.

2

Soup finder mønstre

BeautifulSoup lader Python søge efter tags, klasser, id’er og attributter.

3

Data får en form

En løkke kan forvandle mange HTML-elementer til en liste eller en tabel.

Trin 1 · Den helt simple HTML-side

BeautifulSoup · .find()

Python ser ikke overskriften som “stor tekst”. Python ser en tekst med tags. .find("h1") finder det første <h1>-element, og .get_text() henter teksten indeni.

HTML-kilden

DOM-træet i browseren

Prøv selv: hvad skal .find() finde?

Python ville finde: …

Vigtigt: I browseren er dette et lokalt eksempel, så du kan se hele processen. I Python kan html i stedet komme fra requests.get(url).text.

Trin 2 · Quotes to Scrape

løkker · lister · tekst

quotes.toscrape.com er en træningsside til webscraping. Hvert citat ligger i en div.quote med et tekst-element, en forfatter og tags.

Træningsside: Udsnittet nedenfor er indlejret, så laboratoriet også virker offline. Den viste Python-kode henter den rigtige side med requests.

Trin 3 · Books to Scrape

attributter · dictionaries · tabel

books.toscrape.com ligner en lille webshop. Her skal vi navigere gennem flere tags og hente både tekst og attributter som bogens titel fra title.

TitelPrisPå lager?

Struktur: Hvert resultat bliver gemt som en dictionary med nøglerne title, price og available. Det gør dataene nemme at sortere og analysere bagefter.

Kodeværksted: komplet Python

Vælg trin, læs koden, og ændr selectors direkte i editoren.

trin_1.py
Python-skabelonen er klar.
trin_2_quotes.py
Python-skabelonen er klar.
trin_3_books.py
Python-skabelonen er klar.