Skip to content

Latest commit

 

History

History
112 lines (72 loc) · 3.3 KB

Extraindo_Imagens.md

File metadata and controls

112 lines (72 loc) · 3.3 KB

Extraindo Imagens

O objetivo desse tutorial é ensinar o método de extração e download de imagens em sites. O script em Python não será utilizando spiders, mas simples requisições HTTP. O site escolhido foi o próprio GitHub.


Encontrando a imagem desejada:

  • Abrir o site de escolha, clicar com o botão direito do mouse na imagem desejada e selecionar a opção "Inspecionar":



  • Enconte a tag (img, nesse caso) correspondente à imagem marcada e os melhores parâmetros para trabalhar na extração:




Mãos à obra! O script...

  • Primeiro, caso não tenha os módulos, instale-os (alguns já são nativos do python dependendo da sua versão):
pip install bs4
pip install requests
pip install urllib

  • Insira os módulos no seu código Python:
import requests
import urllib.request
from bs4 import BeautifulSoup

  • Estabeleça uma conexão com o site desejado e puxe o conteúdo dele:
response = requests.get('https://github.com/') 
# Site base.

content = response.content
# Extrair o conteúdo do site.

  • Em seguida, você deve fazer o parser da requisição HTTP para o HTML estruturado com o BeautifulSoup:
site_html = BeautifulSoup(content, 'html.parser')
# parser = analisa uma sequência que foi dada entrada para verificar sua estrutura gramatical segundo uma determinada gramática formal (REQUISICAO HTTP -> HTML ESTRUTURADO).

  • Agora, é necessário encontrar aquela tag que você procurou na etapa de inspecionar:

    • Tente:

      img = site_html.find('img', attrs={'class':'width-full height-auto js-globe-fallback-image'})
      
      link = img.attrs['src']
      1. Caso dê erro, pode ser porque algum parâmetro foi escrito errado. Nesse caso, você pode tentar usar outro atributo da tag ou verificar todas as estruturas daquele tipo:

        img = site_html.findAll('img', attrs={'class':'width-full height-auto js-globe-fallback-image'})
        
        print(img)
        # ou print(img.prettify())



      2. Então use:

        img = site_html.findAll('img', attrs={'class':'width-full height-auto js-globe-fallback-image'})
        # Pela estrutura do site, sabe-se que há apenas uma tag de imagem com a mesma classe, mas caso houvesse mais de uma, seria necessário identificar qual a imagem desejada.
        
        link = img[0].attrs['src']
        # Puxa o atributo src encontrado na primeira tag.



  • Passo final: baixar a imagem.

urllib.request.urlretrieve(f'{link}', 'img.png')
# Faz o download com base no link dado. O segundo parametro indica o nome do arquivo gerado.






License