Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arbejde med Specifikke Elementer | Afkodning af HTML med Beautiful Soup
Web Scraping med Python

bookArbejde med Specifikke Elementer

Navigering i et HTML-dokument ved hjælp af Python-attributter vil kun hente den første forekomst af et bestemt element. Men hvad nu, hvis du er interesseret i den første forekomst af et element og ikke kender hele stien? I sådanne tilfælde kan du benytte metoden .find(), hvor du angiver tagget (uden < >-parenteser) som en streng. For eksempel kan vi finde det første <div>-element i HTML-dokumentet.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Derudover kan du hente alle forekomster af et bestemt element ved at anvende metoden .find_all(). Dette vil returnere en liste af forekomster. For eksempel kan vi finde alle <p>-tags i HTML-dokumentet.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

Du kan også bruge metoden .find_all() til at finde ikke kun én, men flere tags ved at angive en liste af tags. For eksempel kan du indsamle alle <div>- og <title>-elementer.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain the difference between .find() and .find_all() in BeautifulSoup?

How can I extract the text content from the elements found?

What other methods can I use to search for elements in BeautifulSoup?

Awesome!

Completion rate improved to 4.35

bookArbejde med Specifikke Elementer

Stryg for at vise menuen

Navigering i et HTML-dokument ved hjælp af Python-attributter vil kun hente den første forekomst af et bestemt element. Men hvad nu, hvis du er interesseret i den første forekomst af et element og ikke kender hele stien? I sådanne tilfælde kan du benytte metoden .find(), hvor du angiver tagget (uden < >-parenteser) som en streng. For eksempel kan vi finde det første <div>-element i HTML-dokumentet.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Derudover kan du hente alle forekomster af et bestemt element ved at anvende metoden .find_all(). Dette vil returnere en liste af forekomster. For eksempel kan vi finde alle <p>-tags i HTML-dokumentet.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

Du kan også bruge metoden .find_all() til at finde ikke kun én, men flere tags ved at angive en liste af tags. For eksempel kan du indsamle alle <div>- og <title>-elementer.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt