A foto do perfil é um dos principais elementos de qualquer conta de mídia social, mas aplicativos como o Instagram não permitem que você a visualize ou baixe. Esse processo pode ser facilmente alcançado usando uma ferramenta de automação da web como o Selenium com Python.

Aprenda a usar este power duo para interagir com qualquer elemento de uma página da web, automatizá-lo e economizar um tempo inestimável investindo em tarefas produtivas. E a melhor parte? Construa isso mesmo sem fazer login ou ter uma conta no Instagram.!

O processo de construção do algoritmo

A construção do algoritmo refere-se ao processo de identificar o problema e listar as etapas que o programa precisa automatizar. As diferentes etapas necessárias para baixar uma foto de perfil são:

  1. Pegue o nome de usuário de um perfil como entrada
  2. Abra o Google Chrome
  3. Visite o perfil do Instagram
  4. Baixe a foto do perfil

Isso serve como o algoritmo da declaração do problema.

Este projeto usa os seguintes módulos e ferramentas do Python.

instagram viewer

1. Módulo Urllib

Urllib é um módulo Python usado para lidar com URLs da Internet. Você usará este módulo para baixar a foto do perfil da conta de seu URL de origem. Se o Urllib não estiver presente em seu sistema, você pode instalá-lo usando o comando pip instalar urllib.

2. Módulo de tempo

Este módulo, embora não seja obrigatório, pode fazer com que a compilação falhe se sua conexão com a Internet estiver lenta ou o conteúdo da página da Web não é carregado durante o tempo de interação do programa Python com o página da Internet. A função delay() nos ajuda a colocar um pequeno atraso para que a compilação não falhe.

3. Módulo de selênio

Uma das ferramentas de automação de navegador de código aberto mais populares é o Selenium. Está disponível como um pacote Python compatível com vários navegadores, como Google Chrome, Microsoft Edge, Safari e Mozilla Firefox. Para instalar o Selenium em seu ambiente Python, abra seu terminal e executarpip instalar selênio.

4. WebDriver

Um driver web é uma ferramenta usada pelo Selenium que estabelece uma conexão entre o programa e qualquer site. Diferentes tipos de drivers da web estão disponíveis com base no navegador que você deseja automatizar. Para esta compilação, você usará o navegador Google Chrome. Para instalar o driver da Web para o Chrome:

  1. Verifique a versão do navegador que você está usando visitando o Cardápio (3 pontos) >Ajuda > Sobre Google Chrome.
  2. Observe a versão do navegador.
  3. Visite a página de downloads do ChromeDriver - WebDriver para Chrome.
  4. Selecione a opção que corresponde ao número da sua versão das versões atuais do ChromeDriver.
  5. Escolha e baixe o arquivo de acordo com seu sistema operacional.
  6. Extraia o arquivo baixado e coloque-o na mesma pasta do seu programa Python. Isso será útil para definir o caminho durante a codificação.

Como inspecionar o código para automatizar qualquer aspecto de uma página da Web

Para qualquer processo de automação da web usando Selenium e Python, é essencial ter um entendimento básico da web e suas tecnologias. O primeiro passo é ganhar uma introdução ao HTML Seguido por Entendendo as Folhas de Estilo em Cascata (CSS). É aqui que você se familiarizará com o conceito de ids e classes.

Ids e classes são nomes exclusivos dados a um elemento ou conjunto de elementos (tags), respectivamente. Usando-os, você localiza o elemento necessário e instrui o programa Python a direcioná-lo especificamente. Para inspecionar o código e localizar a foto do perfil:

  1. Abra a página da conta do Instagram.
  2. Clique no navegador Cardápio > Mais ferramentas > Ferramentas de desenvolvimento ou use o atalho Ctrl + Shift + I para ativar o Ferramentas de desenvolvimento Visão.
  3. Clique e selecione o Seletor de Elementos (ícone do cursor do mouse) no canto esquerdo da janela e passe o mouse sobre qualquer parte da página da Web para pular para essa seção de código.
  4. É importante observar que as fotos de perfil de uma conta pública e de uma conta privada são definidas de forma diferente. Passe o cursor sobre a foto do perfil de uma conta pública. O atributo de classe para o perfil público é _aa8j.
  5. Repita a etapa acima para um perfil privado. O atributo de classe é _aadp.

Você pode usar este procedimento para entender qualquer página da Web e direcionar qualquer elemento para automação.

Como construir o downloader de fotos do perfil do Instagram

Siga estas etapas para criar o downloader.

  1. Importe os módulos necessários para o ambiente Python.
    a partir de selênio importar webdriver
    importar Tempo
    importar urllib.request
  2. Usando a função de entrada, obtenha o nome de usuário do perfil cuja foto de perfil deve ser baixada e armazene-a em uma variável chamada nome de usuário.
    #inserir o nome de usuário do perfil cuja foto do perfil deve ser baixada 
    nome de usuário = entrada("Digite o nome de usuário do perfil: ")
  3. Inicialize o driver da web criando um objeto dele e passando o caminho do sistema de arquivos.
    #criando um objeto do chromedriver 
    cd='chromedriver.exe'
  4. Use o webdriver. cromada função para iniciar o navegador Google Chrome.
    #abra o navegador google chrome 
    driver = webdriver. Cromada(cd)
  5. A URL de qualquer conta do Instagram é do formato https://www.instagram.com/ seguido do nome de usuário. Defina o URL do perfil como,
    #definindo o URL
    url='https://www.instagram.com/'
    url_p=url+usuário_h
  6. Passe a URL completa do perfil do Instagram a ser visitado para a função get().
    #abra o perfil 
    condutor.pegue(url_p)
  7. Defina um atraso opcional recomendado para o carregamento completo da página da Web.
    #delay para carregamento do conteúdo da página
    Tempo.dorme(5)
  8. Use o bloco try-except para localizar e determinar se a foto do perfil pertence a um perfil público. Isso é feito usando o atributo class na expressão XPath. Em caso de falha, use o bloco exceto para pesquisar a foto do perfil de uma conta privada.
    tentar:
    #se o perfil for público, procure por imagem com a classe _aa8j
    imagem=driver.find_element_by_xpath('//img[@class="_aa8j"]')
    exceto:
    #se o perfil for privado, procure a imagem com a classe _aadp
    imagem=driver.find_element_by_xpath('//img[@class="_aadp"]')
  9. Usando o get_attribute(), ganhe o atributo src da imagem. Isso retorna o link da imagem.
    #armazenar o link de download da imagem 
    img_link=image.get_attribute('src')
  10. Defina o caminho e a extensão do arquivo baixado. Por exemplo, você pode definir a imagem a ser baixada para a unidade D: do seu sistema de arquivos no formato JPG como.
    #set path do arquivo baixado 
    caminho="D:\\"+nome de usuário+".jpg"
  11. Faça o download da imagem passando o link da imagem do perfil como origem e o caminho da pasta do sistema local como destino para a função urlretrieve().
    #baixando a imagem para o destino necessário
    urllib.solicitar.urlrecuperar(img_link,caminho)
  12. Visite a pasta e veja se a foto do perfil foi baixada. Opcionalmente, você também pode exibir o caminho onde a foto do perfil foi baixada.
    #exibindo o caminho da foto do perfil baixada 
    imprimir("A foto do perfil foi baixada em: "+caminho)

Código-fonte final para o downloader de fotos de perfil do Instagram usando Python

Juntando tudo, você obtém:

#importando os módulos necessários
a partir de selênio importar webdriver
importar Tempo
importar urllib.request
#inserir o nome de usuário do perfil cuja foto do perfil deve ser baixada
user_h=input("Digite o nome de usuário do perfil: ")
#definindo o URL
url='https://www.instagram.com/'
url_p=url+usuário_h
#criando objeto do chromedriver
cd='chromedriver.exe'
#abra o google
driver = webdriver. Cromada(cd)
#abra o perfil
condutor.pegue(url_p)
#delay para carregamento do conteúdo da página
Tempo.dorme(5)
tentar:
#se o perfil for público, procure por imagem com a classe _aa8j
imagem=driver.find_element_by_xpath('//img[@class="_aa8j"]')
exceto:
#se o perfil for privado, procure a imagem com a classe _aadp
imagem=driver.find_element_by_xpath('//img[@class="_aadp"]')

#armazenar o link de download da imagem
img_link=image.get_attribute('src')

Aplicações de Automação Web

A automação não apenas ajuda a economizar tempo, dinheiro e esforço, mas também garante a conclusão das tarefas, evitando erros. Use esta técnica para automatizar o login de diferentes sites, realizar backup de servidores em nuvem, agendar mensagens, desejar aniversários em plataformas de mídia social, criar postagens, publicar tweets e muito mais.