Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Busca Avançada | Trabalhando com Atributos de Elementos no Beautiful Soup
Web Scraping com Python

bookBusca Avançada

Algumas tags HTML exigem atributos obrigatórios, como a tag âncora que necessita do atributo href ou a tag <img> que requer o atributo src. Para acessar um atributo específico, utilize o método .get() após .attrs. Por exemplo, recupere 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"))
copy

Você também pode encontrar o atributo id, que é comumente utilizado para diferenciar elementos com a mesma tag. Para buscar elementos com valores de atributos específicos, passe-os como um dicionário no formato attr_name: attr_value para o método .find_all(), logo após especificar a tag. Por exemplo, encontre todos os elementos <div> com o atributo class definido como "box" ou o 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"}))
copy

O método .find() é utilizado em vez de .find_all() para obter um elemento pelo seu id, pois um id é um identificador único e não pode aparecer mais de uma vez. Para confirmar que apenas elementos <div> específicos foram recuperados, verifique as classes atribuídas aos elementos <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"))
copy
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Awesome!

Completion rate improved to 4.35

bookBusca Avançada

Deslize para mostrar o menu

Algumas tags HTML exigem atributos obrigatórios, como a tag âncora que necessita do atributo href ou a tag <img> que requer o atributo src. Para acessar um atributo específico, utilize o método .get() após .attrs. Por exemplo, recupere 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"))
copy

Você também pode encontrar o atributo id, que é comumente utilizado para diferenciar elementos com a mesma tag. Para buscar elementos com valores de atributos específicos, passe-os como um dicionário no formato attr_name: attr_value para o método .find_all(), logo após especificar a tag. Por exemplo, encontre todos os elementos <div> com o atributo class definido como "box" ou o 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"}))
copy

O método .find() é utilizado em vez de .find_all() para obter um elemento pelo seu id, pois um id é um identificador único e não pode aparecer mais de uma vez. Para confirmar que apenas elementos <div> específicos foram recuperados, verifique as classes atribuídas aos elementos <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"))
copy
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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