Kursinhalt
Web Scraping mit Python
Web Scraping mit Python
Erweiterte Suche
Einige HTML-Tags benötigen Pflichtattribute, wie z. B. das Anchor-Tag, das das href-Attribut erfordert, oder <img>
, das das src
-Attribut benötigt. Wenn Sie an einem bestimmten Attribut interessiert sind, können Sie die Methode .get()
in Verbindung mit .attrs
verwenden. Zum Beispiel rufen wir alle src
-Attribute aller <img>
-Elemente ab.
# 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"))
Sie könnten auch auf das id
-Attribut stoßen, das ziemlich üblich ist und verwendet wird, um Elemente mit demselben Tag zu unterscheiden. Wenn Sie an bestimmten Attributwerten interessiert sind, können Sie diese als Dictionary (im Format attr_name
: attr_value
) als Parameter für .find_all()
übergeben (unmittelbar nach Angabe des gesuchten Tags). Zum Beispiel interessieren wir uns nur für <div>
-Elemente mit dem class
-Attribut, das auf "box"
gesetzt ist, oder wir suchen nach dem <p>
-Element mit einem "id"
-Attributswert von "id2"
.
# 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"}))
Wir haben die .find()
-Methode (anstatt .find_all()
) verwendet, um das Element mit einer bestimmten ID abzurufen, da die ID ein eindeutiger Identifikator ist und es nicht mehr als ein Element mit demselben Wert geben kann. Um sicherzustellen, dass wir nur bestimmte <div>
-Elemente erhalten, untersuchen wir die Klassen, die <div>
-Elemente besitzen.
# 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"))
Danke für Ihr Feedback!