De profielfoto is een van de belangrijkste elementen van elk social media-account, maar applicaties zoals Instagram staan je niet toe deze te bekijken of te downloaden. Dit proces kan eenvoudig worden bereikt met behulp van een webautomatiseringstool zoals Selenium met Python.
Leer hoe u dit krachtige duo kunt gebruiken om met elk element van een webpagina te communiceren, deze te automatiseren en uzelf kostbare tijd te besparen door te investeren in productieve taken. En het beste deel? Bouw dit zonder zelfs maar in te loggen of een Instagram-account te hebben.!
Het algoritme-bouwproces
Algoritmen bouwen verwijst naar het proces van het identificeren van het probleem en het opsommen van de stappen die het programma moet automatiseren. De verschillende stappen die nodig zijn om een profielfoto te downloaden zijn:
- Neem de gebruikersnaam van een profiel als invoer
- Google Chrome openen
- Bezoek het Instagram-profiel
- Download de profielfoto
Dit dient als het algoritme van de probleemstelling.
Dit project maakt gebruik van de volgende Python-modules en -hulpmiddelen.
1. Urllib-module
Urllib is een Python-module die wordt gebruikt om URL's van internet te verwerken. U gaat deze module gebruiken om de profielfoto van het account te downloaden van de bron-URL. Als Urllib niet in uw systeem aanwezig is, kunt u het installeren met het commando pip install urllib.
2. Tijdmodule
Deze module, hoewel niet verplicht, kan ervoor zorgen dat de build mislukt als uw internetverbinding traag is of de inhoud van de webpagina wordt niet geladen tijdens de interactie van het Python-programma met de webpagina. De functie delay() helpt ons een kleine vertraging in te stellen, zodat de build niet mislukt.
3. Seleniummodule
Een van de meest populaire open-source browserautomatiseringstools is Selenium. Het is beschikbaar als een Python-pakket dat verschillende browsers ondersteunt, zoals Google Chrome, Microsoft Edge, Safari en Mozilla Firefox. Om Selenium in uw Python-omgeving te installeren, opent u uw Terminal en uitvoerenpip installeer selenium.
4. WebDriver
Een webstuurprogramma is een hulpmiddel dat door Selenium wordt gebruikt en dat een verbinding tot stand brengt tussen het programma en elke website. Verschillende soorten webstuurprogramma's zijn beschikbaar op basis van de browser die u wilt automatiseren. Voor deze build ga je de Google Chrome-browser gebruiken. Het webstuurprogramma voor Chrome installeren:
- Controleer de versie van de browser die u gebruikt door naar de Menu (3 stippen) >Help > Over Google Chrome.
- Let op de versie van de browser.
- Bezoek de downloadpagina van ChromeDriver - WebDriver voor Chrome.
- Selecteer de optie die overeenkomt met uw versienummer uit de huidige releases van ChromeDriver.
- Kies en download het bestand volgens uw besturingssysteem.
- Pak het gedownloade bestand uit en plaats het in dezelfde map als uw Python-programma. Dit is handig bij het instellen van het pad tijdens het coderen.
Hoe code te inspecteren voor het automatiseren van elk aspect van een webpagina
Voor elk webautomatiseringsproces dat Selenium en Python gebruikt, is het essentieel om een basiskennis te hebben van het web en zijn technologieën. De eerste stap is om te winnen een inleiding tot HTML gevolgd door Cascading Style Sheets (CSS) begrijpen. Hier maak je kennis met het concept van id's en klassen.
Ids en klassen zijn unieke namen die aan respectievelijk een element of een set elementen (tags) worden gegeven. Met behulp van deze zoek je het vereiste element en instrueer je het Python-programma om het specifiek te targeten. Om de code te inspecteren en de profielfoto te vinden:
- Open de webpagina van het Instagram-account.
- Klik op de browser Menu > Meer hulpmiddelen > Ontwikkelaarstools of gebruik de snelkoppeling Ctrl + Shift + I om de. te activeren Ontwikkelaarstools visie.
- Klik en selecteer de Elementkiezer tool (muiscursorpictogram) in de linkerhoek van het venster en beweeg het over een willekeurig deel van de webpagina om naar dat gedeelte van de code te springen.
- Het is belangrijk op te merken dat de profielfoto's van een openbaar account en een privéaccount anders zijn ingesteld. Beweeg de cursor over de profielfoto van een openbaar account. Het class-attribuut voor het openbare profiel is _aa8j.
- Herhaal de bovenstaande stap voor een privéprofiel. Het klasse-attribuut is _aadp.
U kunt deze procedure gebruiken om elke webpagina te begrijpen en elk element voor automatisering te targeten.
Hoe de Instagram Profile Pic Downloader te bouwen
Volg deze stappen om de downloader te maken.
- Importeer de benodigde modules in de Python-omgeving.
van selenium importeren webdriver
importeren tijd
importeren urllib.request - Gebruik de invoerfunctie om de gebruikersnaam te verkrijgen van het profiel waarvan de profielfoto moet worden gedownload en sla deze op in een variabele met de naam gebruikersnaam.
#invoeren van de gebruikersnaam van het profiel waarvan de profielfoto moet worden gedownload
gebruikersnaam=invoer("Vul de gebruikersnaam van het profiel in: ") - Initialiseer het webstuurprogramma door er een object van te maken en het bestandssysteempad door te geven.
#een object van chromedriver maken
cd='chromedriver.exe' - Gebruik de webstuurprogramma. Chroom functie om de Google Chrome-browser te starten.
#open google chrome-browser
stuurprogramma = webstuurprogramma. chroom(CD) - De URL van elk Instagram-account is van het formaat https://www.instagram.com/ gevolgd door de gebruikersnaam. Stel de URL van het profiel in als,
#instellen van de url
url='https://www.instagram.com/'
url_p=url+gebruiker_h - Geef de volledige URL van het Instagram-profiel dat moet worden bezocht door aan de functie get().
#open het profiel
bestuurder.krijgen(url_p) - Stel een optionele aanbevolen vertraging in om de webpagina volledig te laden.
#vertraging voor laden van pagina-inhoud
tijd.slaap(5) - Gebruik het try-behalve-blok om te lokaliseren en te bepalen of de profielfoto bij een openbaar profiel hoort. Dit wordt gedaan door het class-attribuut in de XPath-expressie te gebruiken. Gebruik in geval van een storing het blok 'behalve' om de profielfoto van een privéaccount te doorzoeken.
proberen:
#als profiel openbaar is, zoek naar afbeelding met klasse _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
behalve:
#als profiel privé is, zoek naar afbeelding met klasse _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]') - Gebruik de get_attribute() om het src-attribuut van de afbeelding te verkrijgen. Dit retourneert de link van de afbeelding.
#bewaar de downloadlink van de afbeelding
img_link=afbeelding.get_attribute('src') - Stel het pad en de extensie van het gedownloade bestand in. U kunt bijvoorbeeld instellen dat de afbeelding moet worden gedownload naar de D:-schijf van uw bestandssysteem in JPG-indeling als.
#set pad van gedownload bestand
pad="D:\\"+gebruikersnaam+".jpg" - Download de afbeelding door de link van de profielfoto als bron en het pad van de lokale systeemmap als bestemming door te geven aan de functie urlretrieve() .
#download afbeelding naar de gewenste bestemming
urllib.verzoek.urlretrieve(img_link,pad) - Ga naar de map en zie dat de profielfoto is gedownload. Optioneel kunt u ook het pad weergeven waar de profielfoto is gedownload.
#weergave van het pad van de gedownloade profielfoto
afdrukken("De profielfoto is gedownload op: "+pad)
Definitieve broncode voor Instagram Profile Pic Downloader met Python
Als je alles bij elkaar brengt, krijg je:
#importeren van de benodigde modules
van selenium importeren webdriver
importeren tijd
importeren urllib.request
#invoeren van de gebruikersnaam van het profiel waarvan de profielfoto moet worden gedownload
user_h=invoer("Vul de gebruikersnaam van het profiel in: ")
#instellen van de url
url='https://www.instagram.com/'
url_p=url+gebruiker_h
#creëren van object van chromedriver
cd='chromedriver.exe'
#open google
stuurprogramma = webstuurprogramma. chroom(CD)
#open het profiel
bestuurder.krijgen(url_p)
#vertraging voor laden van pagina-inhoud
tijd.slaap(5)
proberen:
#als profiel openbaar is, zoek naar afbeelding met klasse _aa8j
image=driver.find_element_by_xpath('//img[@class="_aa8j"]')
behalve:
#als profiel privé is, zoek naar afbeelding met klasse _aadp
image=driver.find_element_by_xpath('//img[@class="_aadp"]')
#bewaar de downloadlink van de afbeelding
img_link=afbeelding.get_attribute('src')
Toepassingen van webautomatisering
Automatisering helpt u niet alleen tijd, geld en moeite te besparen, maar garandeert ook de voltooiing van taken en voorkomt fouten. Gebruik deze techniek om het inloggen van verschillende websites te automatiseren, back-up van cloudservers uit te voeren, berichten te plannen, verjaardagen te wensen op sociale-mediaplatforms, berichten te maken, tweets te publiceren en nog veel meer.