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.
-
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:
- 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']
-
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())
-
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.
- Licensed under the GPL 3.0