Python Instagram Scraper: image analysis

Nel 2010 la prima versione di Instagram consentiva agli utenti di visualizzare solo foto con un aspect ratio quadrato, ciò significava che gli utenti potevano pubblicare solo contenuti visivi che corrispondessero alla larghezza di 640 pixel dell’iPhone 4 che din quel momento in vendita e supportato. Dal 2015 venne invece data la possibilità agli utenti di caricare immagini più grandi con una risoluzione fino a 1080 pixel.

Lo scraping delle immagini ci permette di trasformare un contenuto visivo in uno testuale rendendolo accessibile ad uno screen-reader per persone cieche o ipovedenti.

Volessimo rendere accessibile l’autoritratto di Van Gogh dovremmo ricavarci l’immagine ad alta risoluzione a 1080 px dalla chiave “display_src” o “display_url”:

elif prop == 'display_src' or prop == 'display_url':
     self.image_high_resolution_url = value




Possiamo iniziare ad analizzare l’immagine utizzando ad esempio una face mesh grid  per ottenere la posizione dei landmarks del volto e ricavarci i dettagli degli occhi o della bocca. Per farlo ci basterà utilizzare Mediapipe di Google e OpenCv.

infos = account.get_post_info('CLJ4_hFr49s')

image_url = infos['high_resolution_image']
ia = ImageAnalysis(image_url)
faces = ia.get_face_mesh()

ia.draw_face_mesh("imgs/van_gogh.jpg")




In questo modo potremmo ricavarci in automatico un contentuto testuale del tipo:

uomo con la barba




Se avessimo bisogno di una risoluzione differente con un ciclo for ci basterebbe loopare all’interno della chiave “display_resources” ottenenendo così i thumbnails.

[0].src = 640x640
[1].src = 750x750
[2].src = 1080x1080




 

Sitografia

Instagram

[1] Nilay Patel , No, Instagram can’t sell your photos: what the new terms of service really mean, The Verge, 18/12/2012
[2] Josh Ocampo, Instagram Doesn’t Own Your Photos, But They Can Still Use Them Forever, LifeHacker, 21/8/2019
[3] Ben Gilbert , No, you don’t have to publicly declare that Instagram can’t use your photos — you already said yes when you signed up, Insider, 21/08/2019
[4] Instagram and Copyright: What are the terms of use?, Copyrightlaws, 11/01/2021

GraphQL
[1] Frederic Lardinois, Facebook’s GraphQL gets its own open-source foundation, Techcrunch, 6/11/2018
[2] Instagram Team, Ora puoi programmare i post con l’API Instagram Graph, Facebook for business, 30/01/2018
[3] Instagram Team, Instagram API changes 2020: Instagram Graph API and Basic Display API, 2018

Emoji
[1] Kralj Novak P, Smailović J, Sluban B, Mozetič I (2015) Sentiment of Emoji.