2013-04-05 15 views
6

Sto cercando di trovare un elenco completo di tutte le immagini su wikipedia, che posso quindi filtrare a quelle di pubblico dominio. Ho scaricato lo SQL discariche da qui:Trovare e scaricare immagini all'interno della discarica di Wikipedia

http://dumps.wikimedia.org/enwiki/latest/

e studiato lo schema DB:

http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/MediaWiki_1.20_%2844edaa2%29_database_schema.svg/2193px-MediaWiki_1.20_%2844edaa2%29_database_schema.svg.png

credo di aver capito, ma quando prendo un'immagine di esempio da una pagina di wikipedia Non riesco a trovarlo da nessuna parte nelle discariche. Per esempio:

http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG

Ho fatto un grep su 'Immagine' di morale, 'imagelinks', e 'pagina' alla ricerca di 'Carrizo_2a.JPG' e non è trovato.

Queste discariche non sono complete? Sto fraintendendo la struttura? C'è un modo migliore per farlo?

Inoltre, per saltare avanti di un passo: dopo aver filtrato la mia lista verso il basso e voglio scaricare una grande quantità di immagini (migliaia) ho visto alcune menzioni che ho bisogno di fare questo da un mirror del sito per evitare sovraccarico di wikipedia/wikimedia. Se ha qualche indicazione su questo, sarebbe utile.

+0

Ecco un esempio di una seconda immagine che presenta gli stessi sintomi. Ho provato un sacco e non ho ancora trovato un singolo che sia in disuso. http://en.wikipedia.org/wiki/File:Aerial-SanAndreas-CarrizoPlain.jpg –

risposta

10

negozi MediaWiki file di dati in due o tre posti, a seconda di come si contano:

  • I metadati effettivo per le versioni di file corrente viene memorizzato nella tabella image. Questo è probabilmente ciò che desideri principalmente; troverai l'ultima versione di it.wikipedia dump di esso here.

  • I dati per le vecchie revisioni dei file sostituiti vengono spostati nella tabella oldimage, che ha fondamentalmente la stessa struttura della tabella image. Anche questa tabella viene scaricata, l'ultima è here.

  • Infine, ogni file (normalmente) corrisponde a una pagina wiki piuttosto comune nel namespace 6 (File:). Troverai il testo di questi nei dump XML, come per qualsiasi altra pagina.

Oh, e il motivo per cui non sta trovando quei file si è collegato al nella Wikipedia inglese discariche è che sono dal repository condiviso a Wikimedia Commons. Li troverai invece nello Commons data dumps.

Per quanto riguarda il download dei file effettivi, here's the (apparently) official documentation. Per quanto posso dire, tutto ciò che intendono per "scaricare Bulk è attualmente (a partire da settembre 2012) disponibile da specchi, ma non offerto direttamente dai server Wikimedia." è che se vuoi tutte le immagini in un tarball, dovrai usare uno specchio. Se stai solo tracciando un numero relativamente piccolo di milioni di immagini su Wikipedia e/o Commons, dovrebbe essere opportuno utilizzare direttamente i server Wikimedia.

Ricorda solo di esercitare la cortesia di base: invia un user-agent string identificandoti e non colpire troppo i server. In particolare, consiglierei di eseguire i download in modo sequenziale, in modo da iniziare a scaricare il file successivo solo dopo aver completato il precedente.Non solo è più facile da implementare rispetto al download parallelo, ma garantisce che non si accumuli più della condivisione della larghezza di banda e che la velocità di download si adegui più o meno automaticamente al carico del server.

Ps. Se si scaricano i file da uno specchio o direttamente dai server Wikimedia, la vostra intenzione di bisogno di capire quale directory sono in tipico URL di file di Wikipedia simile a questa:.

http://upload.wikimedia.org/wikipedia/en/a/ab/File_name.jpg 

dove la parte "wikipedia/en" identifica il progetto e la lingua di Wikimedia (per ragioni storiche, Commons è elencato come "wikipedia/commons") e the "a/ab" part è dato dalle prime due cifre esadecimali dell'hash MD5 del nome file in UTF-8 (poiché sono codificati nei dump del database).

+0

Grazie mille! Non ho ancora ottenuto la parte di download di massa ma non mi sono reso conto che c'erano due repository di dati separati. Sto importando entrambi in questo momento, ma un rapido 'grep' ha confermato che i miei file mancanti erano in uno commons. Wikipedia/media sicuramente non rendono la comprensione di questa roba facile. :) –

+0

Tutto sta andando liscio, tranne che sto cercando di capire come filtrare le immagini che sto selezionando da ciò che è di dominio pubblico. Non riesco a trovare queste informazioni nella tabella 'immagine' o 'pagina'. Penso che sia probabilmente solo nei contenuti della pagina stessa. per esempio. Vedi nella sezione "Licenze" di questa pagina: http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG Quindi sto scaricando questo file: http://dumps.wikimedia.org/enwiki /latest/enwiki-latest-pages-articles.xml.bz2 Ma spero di trovare una versione SQL di questo per una più facile manipolazione. Eventuali suggerimenti? E sono sulla strada giusta qui? –

+0

Dovrei aggiungere, in questa pagina si dice "Sono disponibili anche i file SQL per tutte le pagine e i collegamenti". Questo è quello che mi ha dato l'idea che probabilmente esistono da qualche parte. –