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:
- Pegue o nome de usuário de um perfil como entrada
- Abra o Google Chrome
- Visite o perfil do Instagram
- 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.
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:
- Verifique a versão do navegador que você está usando visitando o Cardápio (3 pontos) >Ajuda > Sobre Google Chrome.
- Observe a versão do navegador.
- Visite a página de downloads do ChromeDriver - WebDriver para Chrome.
- Selecione a opção que corresponde ao número da sua versão das versões atuais do ChromeDriver.
- Escolha e baixe o arquivo de acordo com seu sistema operacional.
- 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:
- Abra a página da conta do Instagram.
- 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.
- 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.
- É 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.
- 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.
- Importe os módulos necessários para o ambiente Python.
a partir de selênio importar webdriver
importar Tempo
importar urllib.request - 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: ") - 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' - Use o webdriver. cromada função para iniciar o navegador Google Chrome.
#abra o navegador google chrome
driver = webdriver. Cromada(cd) - 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 - Passe a URL completa do perfil do Instagram a ser visitado para a função get().
#abra o perfil
condutor.pegue(url_p) - 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) - 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"]') - 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') - 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" - 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) - 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.