Trabalhando 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"))
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"))
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)
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Trabalhando 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"))
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"))
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)
Obrigado pelo seu feedback!