La photo de profil est l'un des principaux éléments de tout compte de réseau social, mais des applications telles qu'Instagram ne vous permettent pas de la visualiser ou de la télécharger. Ce processus peut être facilement réalisé à l'aide d'un outil d'automatisation Web tel que Selenium avec Python.
Apprenez à utiliser ce duo puissant pour interagir avec n'importe quel élément d'une page Web, automatisez-le et gagnez un temps précieux en investissant dans des tâches productives. Et la meilleure partie? Construisez ceci sans même vous connecter ou avoir un compte Instagram.!
Le processus de construction d'algorithmes
La construction d'algorithmes fait référence au processus d'identification du problème et de liste des étapes que le programme doit automatiser. Les différentes étapes nécessaires pour télécharger une photo de profil sont :
- Prendre le nom d'utilisateur d'un profil en entrée
- Ouvrez Google Chrome
- Visitez le profil Instagram
- Télécharger la photo de profil
Cela sert d'algorithme de l'énoncé du problème.
Ce projet utilise les modules et outils Python suivants.
1. Module UrllibComment
Urllib est un module Python utilisé pour gérer les URL provenant d'Internet. Vous allez utiliser ce module pour télécharger la photo de profil du compte à partir de son URL source. Si Urllib n'est pas présent sur votre système, vous pouvez l'installer à l'aide de la commande pip install urllib.
2. Module de temps
Ce module, bien qu'il ne soit pas obligatoire, peut entraîner l'échec de la construction si votre connexion Internet est lente ou le contenu de la page Web n'est pas chargé pendant le temps d'interaction du programme Python avec le page web. La fonction delay() nous aide à mettre un petit délai pour que la construction n'échoue pas.
3. Module Sélénium
L'un des outils d'automatisation de navigateur open source les plus populaires est Selenium. Il est disponible sous forme de package Python prenant en charge divers navigateurs tels que Google Chrome, Microsoft Edge, Safari et Mozilla Firefox. Pour installer Selenium dans votre environnement Python, ouvrez votre Terminal et exécuterpip installer le sélénium.
4. WebDriver
Un pilote Web est un outil utilisé par Selenium qui établit une connexion entre le programme et n'importe quel site Web. Différents types de pilotes Web sont disponibles en fonction du navigateur que vous souhaitez automatiser. Pour cette version, vous allez utiliser le navigateur Google Chrome. Pour installer le pilote Web pour Chrome :
- Vérifiez la version du navigateur que vous utilisez en visitant le Menu (3 points) >Aide > À propos de Google Chrome.
- Notez la version du navigateur.
- Visitez la page de téléchargement de ChromeDriver - WebDriver pour Chrome.
- Sélectionnez l'option qui correspond à votre numéro de version parmi les versions actuelles de ChromeDriver.
- Choisissez et téléchargez le fichier en fonction de votre système d'exploitation.
- Extrayez le fichier téléchargé et placez-le dans le même dossier que votre programme Python. Cela sera utile pour définir le chemin lors du codage.
Comment inspecter le code pour automatiser n'importe quel aspect d'une page Web
Pour tout processus d'automatisation Web utilisant Selenium et Python, il est essentiel d'avoir une compréhension de base du Web et de ses technologies. La première étape consiste à gagner une introduction au HTML suivie par comprendre les feuilles de style en cascade (CSS). C'est ici que vous vous familiariserez avec le concept des identifiants et des classes.
Les identifiants et les classes sont des noms uniques attribués respectivement à un élément ou à un ensemble d'éléments (tags). En les utilisant, vous localisez l'élément requis et demandez au programme Python de le cibler spécifiquement. Pour inspecter le code et localiser la photo de profil :
- Ouvrez la page Web du compte Instagram.
- Cliquez sur le navigateur Menu > Plus d'outils > Outils de développement ou utilisez le raccourci Ctrl + Maj + I pour activer le Outils de développement voir.
- Cliquez et sélectionnez le Sélecteur d'élément (icône du curseur de la souris) dans le coin gauche de la fenêtre et placez-le sur n'importe quelle partie de la page Web pour accéder à cette section de code.
- Il est important de noter que les photos de profil d'un compte public et d'un compte privé sont définies différemment. Passez le curseur sur la photo de profil d'un compte public. L'attribut de classe pour le profil public est _aa8j.
- Répétez l'étape ci-dessus pour un profil privé. L'attribut de classe est _aadp.
Vous pouvez utiliser cette procédure pour comprendre n'importe quelle page Web et cibler n'importe quel élément pour l'automatisation.
Comment créer le téléchargeur de photos de profil Instagram
Suivez ces étapes pour créer le téléchargeur.
- Importez les modules requis dans l'environnement Python.
de sélénium importer pilote web
importer temps
importer urllib.request - À l'aide de la fonction d'entrée, obtenez le nom d'utilisateur du profil dont la photo de profil doit être téléchargée et stockez-la dans une variable appelée nom d'utilisateur.
#saisir le nom d'utilisateur du profil dont la photo de profil doit être téléchargée
nom d'utilisateur=entrée("Saisissez le nom d'utilisateur du profil: ") - Initialisez le pilote Web en créant un objet de celui-ci et en transmettant son chemin de système de fichiers.
#création d'un objet de chromedriver
CD='chromedriver.exe' - Utilisez le pilote web. Chrome fonction pour lancer le navigateur Google Chrome.
#ouvrir le navigateur google chrome
pilote = pilote Web. Chrome(CD) - L'URL de tout compte Instagram est au format https://www.instagram.com/ suivi du nom d'utilisateur. Définissez l'URL du profil comme,
#définir l'url
URL='https://www.instagram.com/'
url_p=url+user_h - Passez l'URL complète du profil Instagram à visiter à la fonction get().
#ouvrir le profil
chauffeur.obtenir(url_p) - Définissez un délai facultatif recommandé pour que la page Web se charge complètement.
#delay pour le chargement du contenu de la page
temps.dormir(5) - Utilisez le bloc try-except pour localiser et déterminer si la photo de profil appartient à un profil public. Cela se fait en utilisant l'attribut class dans l'expression XPath. En cas d'échec, utilisez le bloc sauf pour rechercher la photo de profil d'un compte privé.
essayer:
#si le profil est public, recherchez l'image avec la classe _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
à l'exception:
#si le profil est privé, recherchez l'image avec la classe _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]') - À l'aide de get_attribute(), obtenez l'attribut src de l'image. Cela renvoie le lien de l'image.
#stocker le lien de téléchargement de l'image
img_link=image.get_attribute('src') - Définissez le chemin et l'extension du fichier téléchargé. Par exemple, vous pouvez définir l'image à télécharger sur le lecteur D: de votre système de fichiers au format JPG en tant que.
#définir le chemin du fichier téléchargé
chemin="RÉ:\\"+nom d'utilisateur+".jpg" - Téléchargez l'image en transmettant le lien de l'image de profil comme source et le chemin du dossier système local comme destination à la fonction urlretrieve().
#téléchargement de l'image vers la destination requise
urllib.demande.urlretrieve(img_lien,chemin) - Visitez le dossier et voyez que la photo de profil a été téléchargée. En option, vous pouvez également afficher le chemin où la photo de profil a été téléchargée.
#affichage du chemin de la photo de profil téléchargée
imprimer("La photo de profil a été téléchargée sur: "+chemin)
Code source final pour le téléchargeur de photos de profil Instagram à l'aide de Python
En réunissant le tout, vous obtenez :
#importer les modules requis
de sélénium importer pilote web
importer temps
importer urllib.request
#saisir le nom d'utilisateur du profil dont la photo de profil doit être téléchargée
user_h=entrée("Saisissez le nom d'utilisateur du profil: ")
#définir l'url
URL='https://www.instagram.com/'
url_p=url+user_h
#création d'un objet de chromedriver
CD='chromedriver.exe'
#ouvrir google
pilote = pilote Web. Chrome(CD)
#ouvrir le profil
chauffeur.obtenir(url_p)
#delay pour le chargement du contenu de la page
temps.dormir(5)
essayer:
#si le profil est public, recherchez l'image avec la classe _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
à l'exception:
#si le profil est privé, recherchez l'image avec la classe _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')
#stocker le lien de téléchargement de l'image
img_link=image.get_attribute('src')
Applications de l'automatisation Web
L'automatisation vous permet non seulement d'économiser du temps, de l'argent et des efforts, mais garantit également l'exécution des tâches tout en évitant les erreurs. Utilisez cette technique pour automatiser la connexion de différents sites Web, effectuer une sauvegarde des serveurs cloud, programmer des messages, souhaiter des anniversaires sur les plateformes de médias sociaux, créer des publications, publier des tweets, etc.