Attributter og Indhold af Element
Metoderne, der er gennemgået i de foregående afsnit, returnerer specifikke dele af HTML-koden. BeautifulSoup
gør det muligt at hente attributter og indhold fra bestemte elementer. For at få adgang til attributterne for et objekt, anvendes attributten .attrs
. For eksempel kan vi hente attributterne for det første <div>
-element.
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").attrs)
Det er vigtigt at bemærke, at resultatet af at bruge attributten .attrs
er en ordbog, hvor nøglerne er attributnavne og værdierne er deres respektive værdier. Hvis du ønsker at hente indholdet, der er gemt i et tag, anvendes attributten .contents. For eksempel kan vi undersøge indholdet af det første <div>
-element.
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").contents)
Som det ses ovenfor, blev alle linjeskiftstegn inkluderet i en liste af elementer, hvilket muligvis ikke er den mest ønskelige repræsentation af indholdet. For kun at udtrække teksten inden for et specifikt element, anvendes metoden .get_text()
. Sammenlign resultaterne fra eksemplet nedenfor med det tidligere opnåede.
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").get_text())
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
What is the difference between .attrs, .contents, and .get_text() in BeautifulSoup?
Can you explain how to use .attrs to get specific attribute values?
How can I extract text from other HTML elements using BeautifulSoup?
Awesome!
Completion rate improved to 4.35
Attributter og Indhold af Element
Stryg for at vise menuen
Metoderne, der er gennemgået i de foregående afsnit, returnerer specifikke dele af HTML-koden. BeautifulSoup
gør det muligt at hente attributter og indhold fra bestemte elementer. For at få adgang til attributterne for et objekt, anvendes attributten .attrs
. For eksempel kan vi hente attributterne for det første <div>
-element.
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").attrs)
Det er vigtigt at bemærke, at resultatet af at bruge attributten .attrs
er en ordbog, hvor nøglerne er attributnavne og værdierne er deres respektive værdier. Hvis du ønsker at hente indholdet, der er gemt i et tag, anvendes attributten .contents. For eksempel kan vi undersøge indholdet af det første <div>
-element.
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").contents)
Som det ses ovenfor, blev alle linjeskiftstegn inkluderet i en liste af elementer, hvilket muligvis ikke er den mest ønskelige repræsentation af indholdet. For kun at udtrække teksten inden for et specifikt element, anvendes metoden .get_text()
. Sammenlign resultaterne fra eksemplet nedenfor med det tidligere opnåede.
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").get_text())
Tak for dine kommentarer!