Pesquisa Avançada
Certas tags HTML exigem atributos obrigatórios, como a tag âncora que necessita do atributo href ou <img>
que requer o atributo src
. Caso haja interesse em um atributo específico, é possível utilizar o método .get()
após .attrs
. Por exemplo, vamos obter todos os atributos src
de todos os elementos <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"))
Também é possível encontrar o atributo id
, que é bastante comum e utilizado para diferenciar elementos sob a mesma tag. Caso haja interesse em valores específicos de atributos, é possível passá-los como um dicionário (no formato attr_name
: attr_value
) como parâmetro para .find_all()
(imediatamente após especificar a tag que está sendo buscada). Por exemplo, o interesse pode ser apenas por elementos <div>
com o atributo class
definido como "box"
, ou pela busca do elemento <p>
com o valor do atributo "id"
igual a "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"}))
Utilizou-se o método .find()
(em vez de .find_all()
) para recuperar o elemento com um id específico, pois o id é um identificador único e não pode haver mais de um elemento com o mesmo valor. Para garantir que apenas elementos <div>
específicos fossem obtidos, é necessário examinar as classes que os elementos <div>
possuem.
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"))
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 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
Pesquisa Avançada
Deslize para mostrar o menu
Certas tags HTML exigem atributos obrigatórios, como a tag âncora que necessita do atributo href ou <img>
que requer o atributo src
. Caso haja interesse em um atributo específico, é possível utilizar o método .get()
após .attrs
. Por exemplo, vamos obter todos os atributos src
de todos os elementos <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"))
Também é possível encontrar o atributo id
, que é bastante comum e utilizado para diferenciar elementos sob a mesma tag. Caso haja interesse em valores específicos de atributos, é possível passá-los como um dicionário (no formato attr_name
: attr_value
) como parâmetro para .find_all()
(imediatamente após especificar a tag que está sendo buscada). Por exemplo, o interesse pode ser apenas por elementos <div>
com o atributo class
definido como "box"
, ou pela busca do elemento <p>
com o valor do atributo "id"
igual a "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"}))
Utilizou-se o método .find()
(em vez de .find_all()
) para recuperar o elemento com um id específico, pois o id é um identificador único e não pode haver mais de um elemento com o mesmo valor. Para garantir que apenas elementos <div>
específicos fossem obtidos, é necessário examinar as classes que os elementos <div>
possuem.
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"))
Obrigado pelo seu feedback!