Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Arbeta med Specifika Element | Avkoda HTML med Beautiful Soup
Web Scraping med Python

bookArbeta med Specifika Element

Att navigera i ett HTML-dokument med Python-attribut hämtar endast den första förekomsten av ett visst element. Men vad händer om du är intresserad av den första instansen av ett element och inte känner till dess fullständiga sökväg? I sådana fall kan du använda metoden .find(), där du skickar taggen (utan < >-parenteser) som en sträng. Till exempel, låt oss hitta det första <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

Dessutom kan du hämta alla instanser av ett specifikt element genom att använda metoden .find_all(). Detta ger en lista med instanser. Till exempel, låt oss hitta alla <p>-taggar 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 också använda metoden .find_all() för att hitta inte bara en utan flera taggar genom att ange en lista med taggar. Till exempel, samla alla <div>- och <title>-element.

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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookArbeta med Specifika Element

Svep för att visa menyn

Att navigera i ett HTML-dokument med Python-attribut hämtar endast den första förekomsten av ett visst element. Men vad händer om du är intresserad av den första instansen av ett element och inte känner till dess fullständiga sökväg? I sådana fall kan du använda metoden .find(), där du skickar taggen (utan < >-parenteser) som en sträng. Till exempel, låt oss hitta det första <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

Dessutom kan du hämta alla instanser av ett specifikt element genom att använda metoden .find_all(). Detta ger en lista med instanser. Till exempel, låt oss hitta alla <p>-taggar 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 också använda metoden .find_all() för att hitta inte bara en utan flera taggar genom att ange en lista med taggar. Till exempel, samla alla <div>- och <title>-element.

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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5
some-alt