Als u een website ontwikkelt of ontwerpt, heeft u waarschijnlijk wat stockfoto's nodig. Ze kunnen nuttig zijn voor het maken van prototypen of zelfs voor gebruik in uw productie-app.
U kunt eenvoudig een willekeurige afbeeldingsophaaldienst bouwen met behulp van de altijd vriendelijke Python-taal. U kunt het gebruiken om willekeurige beelden in een widget te laten zien, te testen op het wisselen van resolutie of te pronken met een productaanbevelingsengine.
Volg dit project om hands-on ervaring op te doen met de Requests and Pillow module. Ze zullen nuttig blijken voor toekomstig webwerk, inclusief beeldverwerking.
De Verzoek- en Kussenmodules
De Requests-module maakt het eenvoudig om HTTP-verzoeken te doen en retourneert een responsobject dat gegevens zoals codering en status bevat. Hiermee kunt u veel interessante toepassingen ontwikkelen, zoals een
website-statuscontrole, webschraper, beursmonitor-bot en website-prestatietester. Om de Requests-module te installeren, opent u de terminal en typt u:pip installatieverzoeken
De Pillow-bibliotheek, een afsplitsing van de Python Imaging Library (PIL), biedt beeldverwerkingsmogelijkheden die helpen bij het bewerken, maken, bestandsformaten converterenen het opslaan van afbeeldingen. Het biedt brede compatibiliteit met bestandsindelingen en een nuttige interne weergave. Om de Pillow-module te installeren, opent u de terminal en typt u:
pip installeren Kussen
Hoe een willekeurige afbeeldingsophaalfunctie te bouwen met behulp van Python
Hierin vind je de broncode van Random Image Fetcher met behulp van Python GitHub-opslagplaats.
Importeer de modules en definieer een functie met de naam img_requests() dat neemt txt als invoerparameter. Stuur een GET-methode naar de API-URL van Unsplash en gebruik de formaat methode om de tijdelijke aanduiding in te vullen, {0}, met de waarde van txt. Sla de reactie van de inhoud op in JPG-indeling en open de afbeelding zodat de gebruiker deze kan bekijken. Sluit ten slotte het geopende bestand.
importeren aanvragen
van PIL importeren Afbeelding
defimg_verzoeken(tekst):
antwoord = verzoeken.get(" https://source.unsplash.com/random{0}".formaat (txt))
bestand = openen('afbeelding.jpg', 'wb')
bestand.schrijven (antwoord.inhoud)
img = Afbeelding.open(r"afbeelding.jpg")
img.show()
bestand.close()
Geef de verschillende opties weer die het programma de gebruiker biedt. De eerste vier opties halen een afbeelding op in HD-, Full HD-, 2K- of 4K-resolutie, afhankelijk van de keuze. Als de gebruiker de vijfde optie kiest, moet hij een trefwoord opgeven. Op basis hiervan selecteert het programma een geschikte afbeelding en slaat deze op in het systeem.
afdrukken(Geef een optie op voor Afbeelding
1. Willekeurige HD-afbeelding
2. Willekeurig FHD-beeld
3.2K Willekeurige foto
4.4k Willekeurig beeld
5. Afbeelding met Door gebruiker opgegeven trefwoord )
Krijg de keuze van de gebruiker, geef een passend bericht weer en roep de functie img_requests aan, waarbij u de juiste tekst voor hun zoekopdracht doorgeeft.
ans = invoer()
als'een'in ans of'1'in ans:
afdrukken("Even geduld terwijl we een HD-beeld ophalen.")
img_requests('/1280x720')
elif'twee'in ans of'2'in ans:
afdrukken("Even geduld a.u.b. terwijl we een Full HD-beeld ophalen.")
img_requests('/1920x1080')
elif'drie'in ans of'3'in ans:
afdrukken("Een ogenblik geduld terwijl we een afbeelding van 2k ophalen.")
img_requests('/2048x1080')
elif'vier'in ans of'4'in ans:
afdrukken("Een ogenblik geduld terwijl we een 4K-beeld ophalen.")
img_requests('/4096x2160')
De vijfde optie is iets ingewikkelder. Als de gebruiker ervoor kiest, vraag hem dan om zijn trefwoorden in te voeren. Voeg een vraagteken toe voor het trefwoord en roep de functie aan om een willekeurige afbeelding op te halen volgens de invoer.
elif'vijf'in ans of'5'in ans:
afdrukken("Voer een trefwoord in waarvan u een willekeurig beeld wilt krijgen.")
st = invoer()
st = "?" + st
afdrukken("Een ogenblik geduld terwijl we de afbeeldingen uit onze database halen.")
img_requests (st)
Als de gebruiker iets anders invoert, vraag hem dan om geldige invoer:
anders:
afdrukken("Gelieve een geldige invoer op te geven.")
Zet alle code bij elkaar en geniet van het ophalen van willekeurige afbeeldingen in hoge resolutie.
Uitvoer van de Random Image Fetcher
Bij het uitvoeren van het bovenstaande programma geeft het programma vijf opties weer. Bij het kiezen van een van de opties, heeft het programma een afbeelding opgeslagen en op het scherm weergegeven.
Als je optie 5 kiest en het trefwoord Spider-Man invoert, haalt het programma de volgende Spider-Man-afbeelding op van Unsplash.
Webschrapen met behulp van Python
Veel sites bieden handige API's, zoals de willekeurige afbeeldingsophaalfunctie van Unsplash. Maar voor degenen die dat niet doen, kunt u altijd uw toevlucht nemen tot webscraping en de Requests-module kan helpen.
Andere handige modules zijn Beautiful Soup, Selenium, Scrapy, Urllib en Mechanize. U kunt webscraping gebruiken om informatie van elke website te extraheren, op te slaan en te analyseren volgens uw vereisten.
Enkele van de toepassingen die u met deze techniek kunt ontwikkelen, zijn onder meer een nieuwsschraper, een prijstracker en een afbeeldingsdownloader. Web Scraping wordt ook veel gebruikt in Natural Language Processing om modellen te trainen en sentimentanalyse uit te voeren.