Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Edistynyt Haku | Elementtien Attribuuttien Käsittely Beautiful Soupissa
Verkkosivujen Tietojen Keruu Pythonilla

bookEdistynyt Haku

Tietyt HTML-tagit vaativat pakollisia attribuutteja, kuten ankkuritagi tarvitsee href-attribuutin tai <img> vaatii src-attribuutin. Jos olet kiinnostunut tietystä attribuutista, voit käyttää .get()-metodia .attrs-avainsanan jälkeen. Esimerkiksi haetaan kaikkien src-elementtien <img>-attribuutit.

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 img in soup.find_all("img"): print(img.attrs.get("src"))
copy

id-attribuutti voi myös esiintyä usein, ja sitä käytetään erottamaan saman tagin elementtejä toisistaan. Jos olet kiinnostunut tietyistä attribuuttien arvoista, voit välittää ne sanakirjana (muodossa attr_name: attr_value) parametrina .find_all()-metodille (heti tagin määrittämisen jälkeen). Esimerkiksi olemme kiinnostuneita vain niistä <div>-elementeistä, joiden class-attribuutin arvo on "box", tai etsimme <p>-elementtiä, jonka "id"-attribuutin arvo on "id2".

12345678910111213141516
# 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 div in soup.find_all("div", {"class": "box"}): print(div) # Filtering by id attribute value print(soup.find("p", {"id": "id2"}))
copy

Käytettiin .find()-metodia (sen sijaan, että olisi käytetty .find_all()), jotta saatiin elementti tietyllä id-arvolla, koska id on yksilöllinen tunniste eikä samalla arvolla voi olla useampaa elementtiä. Jotta saadaan vain tietyt <div>-elementit, tarkastellaan, mitä luokkia <div>-elementeillä on.

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 div in soup.find_all("div"): print(div.attrs.get("class"))
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain what the output of the last code block will look like?

How can I filter `<div>` elements by multiple classes?

What other attributes can I filter elements by using BeautifulSoup?

Awesome!

Completion rate improved to 4.35

bookEdistynyt Haku

Pyyhkäise näyttääksesi valikon

Tietyt HTML-tagit vaativat pakollisia attribuutteja, kuten ankkuritagi tarvitsee href-attribuutin tai <img> vaatii src-attribuutin. Jos olet kiinnostunut tietystä attribuutista, voit käyttää .get()-metodia .attrs-avainsanan jälkeen. Esimerkiksi haetaan kaikkien src-elementtien <img>-attribuutit.

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 img in soup.find_all("img"): print(img.attrs.get("src"))
copy

id-attribuutti voi myös esiintyä usein, ja sitä käytetään erottamaan saman tagin elementtejä toisistaan. Jos olet kiinnostunut tietyistä attribuuttien arvoista, voit välittää ne sanakirjana (muodossa attr_name: attr_value) parametrina .find_all()-metodille (heti tagin määrittämisen jälkeen). Esimerkiksi olemme kiinnostuneita vain niistä <div>-elementeistä, joiden class-attribuutin arvo on "box", tai etsimme <p>-elementtiä, jonka "id"-attribuutin arvo on "id2".

12345678910111213141516
# 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 div in soup.find_all("div", {"class": "box"}): print(div) # Filtering by id attribute value print(soup.find("p", {"id": "id2"}))
copy

Käytettiin .find()-metodia (sen sijaan, että olisi käytetty .find_all()), jotta saatiin elementti tietyllä id-arvolla, koska id on yksilöllinen tunniste eikä samalla arvolla voi olla useampaa elementtiä. Jotta saadaan vain tietyt <div>-elementit, tarkastellaan, mitä luokkia <div>-elementeillä on.

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 div in soup.find_all("div"): print(div.attrs.get("class"))
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
some-alt