Розширений пошук
Деякі HTML-теги вимагають обов'язкових атрибутів, наприклад, тег anchor потребує атрибута href, а <img>
— атрибута src
. Якщо вас цікавить певний атрибут, можна скористатися методом .get()
після .attrs
. Наприклад, отримаймо всі атрибути src
для всіх елементів <img>
.
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"))
Ви також можете зустріти атрибут id
, який є досить поширеним і використовується для розрізнення елементів з однаковим тегом. Якщо вас цікавлять конкретні значення атрибутів, їх можна передати у вигляді словника (у форматі attr_name
: attr_value
) як параметр для .find_all()
(відразу після вказання тега, який ви шукаєте). Наприклад, нас цікавлять лише елементи <div>
з атрибутом class
, що дорівнює "box"
, або ми шукаємо елемент <p>
зі значенням атрибута "id"
рівним "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"}))
Ми використали метод .find()
(замість .find_all()
), щоб отримати елемент із певним id, оскільки id є унікальним ідентифікатором, і не може бути більше одного елемента з однаковим значенням. Щоб переконатися, що ми отримали лише конкретні елементи <div>
, розглянемо класи, які мають елементи <div>
.
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"))
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Розширений пошук
Свайпніть щоб показати меню
Деякі HTML-теги вимагають обов'язкових атрибутів, наприклад, тег anchor потребує атрибута href, а <img>
— атрибута src
. Якщо вас цікавить певний атрибут, можна скористатися методом .get()
після .attrs
. Наприклад, отримаймо всі атрибути src
для всіх елементів <img>
.
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"))
Ви також можете зустріти атрибут id
, який є досить поширеним і використовується для розрізнення елементів з однаковим тегом. Якщо вас цікавлять конкретні значення атрибутів, їх можна передати у вигляді словника (у форматі attr_name
: attr_value
) як параметр для .find_all()
(відразу після вказання тега, який ви шукаєте). Наприклад, нас цікавлять лише елементи <div>
з атрибутом class
, що дорівнює "box"
, або ми шукаємо елемент <p>
зі значенням атрибута "id"
рівним "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"}))
Ми використали метод .find()
(замість .find_all()
), щоб отримати елемент із певним id, оскільки id є унікальним ідентифікатором, і не може бути більше одного елемента з однаковим значенням. Щоб переконатися, що ми отримали лише конкретні елементи <div>
, розглянемо класи, які мають елементи <div>
.
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"))
Дякуємо за ваш відгук!