Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Робота з Конкретними Елементами | Декодування HTML за допомогою Beautiful Soup
Web Scraping з Python

bookРобота з Конкретними Елементами

Навігація по HTML-документу за допомогою атрибутів Python дозволяє отримати лише перше входження певного елемента. Але що робити, якщо вас цікавить саме перший екземпляр елемента, і ви не знаєте його повний шлях? У таких випадках можна скористатися методом .find(), передаючи тег (без дужок < >) як рядок. Наприклад, знайдемо перший елемент <div> у HTML-документі.

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

Крім того, можна отримати всі екземпляри певного елемента, використовуючи метод .find_all(). Це поверне список екземплярів. Наприклад, знайдемо всі теги <p> у HTML-документі.

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

Можна також використовувати метод .find_all(), щоб знаходити не лише один, а декілька тегів, передаючи список тегів. Наприклад, зберемо всі елементи <div> та <title>.

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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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

bookРобота з Конкретними Елементами

Свайпніть щоб показати меню

Навігація по HTML-документу за допомогою атрибутів Python дозволяє отримати лише перше входження певного елемента. Але що робити, якщо вас цікавить саме перший екземпляр елемента, і ви не знаєте його повний шлях? У таких випадках можна скористатися методом .find(), передаючи тег (без дужок < >) як рядок. Наприклад, знайдемо перший елемент <div> у HTML-документі.

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

Крім того, можна отримати всі екземпляри певного елемента, використовуючи метод .find_all(). Це поверне список екземплярів. Наприклад, знайдемо всі теги <p> у HTML-документі.

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

Можна також використовувати метод .find_all(), щоб знаходити не лише один, а декілька тегів, передаючи список тегів. Наприклад, зберемо всі елементи <div> та <title>.

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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5
some-alt