Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Trabalhando com Elementos Específicos | Decodificando HTML com Beautiful Soup
Web Scraping com Python

bookTrabalhando com Elementos Específicos

Navegar por um documento HTML usando atributos do Python recupera apenas a primeira ocorrência de um determinado elemento. Mas e se você estiver interessado na primeira instância de um elemento e não souber seu caminho completo? Nesses casos, é possível utilizar o método .find(), passando a tag (sem os colchetes < >) como uma string. Por exemplo, vamos localizar o primeiro elemento <div> no documento 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

Além disso, é possível recuperar todas as instâncias de um elemento específico utilizando o método .find_all(). Isso retornará uma lista de instâncias. Por exemplo, vamos localizar todas as tags <p> no documento 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

Também é possível utilizar o método .find_all() para localizar não apenas uma, mas várias tags, fornecendo uma lista de tags. Por exemplo, coletar todos os elementos <div> e <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

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

bookTrabalhando com Elementos Específicos

Deslize para mostrar o menu

Navegar por um documento HTML usando atributos do Python recupera apenas a primeira ocorrência de um determinado elemento. Mas e se você estiver interessado na primeira instância de um elemento e não souber seu caminho completo? Nesses casos, é possível utilizar o método .find(), passando a tag (sem os colchetes < >) como uma string. Por exemplo, vamos localizar o primeiro elemento <div> no documento 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

Além disso, é possível recuperar todas as instâncias de um elemento específico utilizando o método .find_all(). Isso retornará uma lista de instâncias. Por exemplo, vamos localizar todas as tags <p> no documento 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

Também é possível utilizar o método .find_all() para localizar não apenas uma, mas várias tags, fornecendo uma lista de tags. Por exemplo, coletar todos os elementos <div> e <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

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
some-alt