Voglio ottenere le immagini delle versioni di Discogs. Posso farlo senza l'API di Discogs? Non hanno collegamenti alle immagini nei loro db dump.Come ottenere immagini delle versioni di Discogs?
risposta
Per eseguire questa operazione senza l'API, è necessario caricare una pagina Web ed estrarre l'immagine dal codice sorgente html. È possibile trovare la pagina corrispondente caricando https://www.discogs.com/release/xxxx
dove xxxx
è il numero di versione. Poiché html è solo un file di testo, ora puoi estrarre l'URL jpeg.
Non so quale sia il tuo linguaggio di programmazione, ma sono sicuro che può gestire le funzioni String, come indexOf
e subString
. È possibile estrarre il contenuto dello OG:Image
di html per l'immagine.
Quindi, prendendo un esempio: https://www.discogs.com/release/8140515
- Trova il salvataggio
.indexOf("og:image\" content=\");
comestartPos
per qualche intero. - Questo è 19 caratteri, quindi, fare uno
.indexOf(".jpg", startPos + 19);
in unendPos
.
Ottiene la prima occorrenza di .jpg dopo l'indice di startPos + 19 qualsiasi altro carattere. Ora estrarre un sottoStringa dal testo HTML
img_URL = myHtmlStr.substring(startPos+19, endPos);
si dovrebbe finire con una stringa di lettura come questo qui sotto (URL estratto):
https://img.discogs.com/_zHBK73yJ5oON197YTDXM7JoBjA=/fit-in/600x600/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-8140515-1460073064-5890.jpeg.jpgIl processo può essere ridotto a trovare il startPos indice
https://img.
, quindi individuare la prima occorrenza di.jpg
durante la ricerca dopo l'indice startPos. Estrai all'interno di tale intervallo di lunghezza. Questo perché l'URL dell'immagine è menzionato solo nel codice HTML inhttps://img.
Confronta pagina a: https://www.discogs.com/release/8140515 immagine estratta URL di seguito con.
** Nota: ** Potrebbe essere necessario mettere a punto quei numeri indice Pos. es .: puoi cambiare da ** + 19 ** a ** + 21 ** per tagliare le virgolette ecc (** se necessario ** dal tuo strumento di codifica). Lo capirai quando testerai ... –
Cercando di recuperare le immagini di molte versioni, non sarà possibile bloccare l'accesso automatico di Discogs? – Collector
@Collector, io non la penso così (a meno che tu non possa mostrare il contrario). L'accesso non è stato bloccato per nessuno dei miei test di codice AS3 o codice PHP. Ogni caricato 5 immagini solo per controllare i percorsi vengono analizzati correttamente. –