Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arbeide med Spesifikke Elementer | Decoding HTML med Beautiful Soup
Webskraping med Python

bookArbeide med Spesifikke Elementer

Navigering i et HTML-dokument ved hjelp av Python-attributter vil kun hente den første forekomsten av et bestemt element. Men hva om du er interessert i den første forekomsten av et element uten å kjenne hele stien? I slike tilfeller kan du bruke .find()-metoden, hvor du sender inn taggen (uten < >-klammer) som en streng. For eksempel, la oss finne det første <div>-elementet 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

Videre kan du hente alle forekomster av et spesifikt element ved å bruke .find_all()-metoden. Dette vil gi en liste med forekomster. For eksempel, la oss finne alle <p>-taggene 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å bruke metoden .find_all() for å finne ikke bare én, men flere tagger ved å oppgi en liste med tagger. For eksempel, la oss hente alle <div>- og <title>-elementene.

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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookArbeide med Spesifikke Elementer

Sveip for å vise menyen

Navigering i et HTML-dokument ved hjelp av Python-attributter vil kun hente den første forekomsten av et bestemt element. Men hva om du er interessert i den første forekomsten av et element uten å kjenne hele stien? I slike tilfeller kan du bruke .find()-metoden, hvor du sender inn taggen (uten < >-klammer) som en streng. For eksempel, la oss finne det første <div>-elementet 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

Videre kan du hente alle forekomster av et spesifikt element ved å bruke .find_all()-metoden. Dette vil gi en liste med forekomster. For eksempel, la oss finne alle <p>-taggene 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å bruke metoden .find_all() for å finne ikke bare én, men flere tagger ved å oppgi en liste med tagger. For eksempel, la oss hente alle <div>- og <title>-elementene.

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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt