2016-03-28 19 views
6

Sto cercando di ottenere informazioni su un gran numero di articoli accademici come parte del mio studio di ricerca. Il numero di articoli è dell'ordine di migliaia. Poiché Google Scholar non ha un'API, sto provando a grattare/eseguire ricerche su studiosi. Ora, ora, questo è tecnicamente contrario all'EULA, ma sto cercando di essere molto gentile e ragionevole in merito. Comprendo che Google non consente ai bot di mantenere il traffico entro limiti ragionevoli. Ho iniziato con un batch di prova di ~ 500.000 richieste con 1 s tra ogni richiesta. Sono stato bloccato dopo circa le prime 100 richieste. Ho provato diverse altre strategie tra cui:Scansione di Google Scholar

  1. L'estensione delle pause a ~ 20s e l'aggiunta di un po 'di rumore casuale a loro
  2. Rendere le pause log-normalmente distribuito (in modo che la maggior parte le pause sono nell'ordine di secondi, ma ogni tanto e poi ci sono pause più lunghe di diversi minuti e più)
  3. Facendo lunghe pause (diverse ore) tra i blocchi di richieste (~ 100).

Dubito che a questo punto la mia sceneggiatura stia aggiungendo un notevole traffico su ciò che qualsiasi umano vorrebbe. Ma in un modo o nell'altro mi vengono sempre bloccati dopo ~ 100-200 richieste. Qualcuno sa di una buona strategia per superare questo (non mi interessa se ci vogliono settimane, purché sia ​​automatizzato). Inoltre, qualcuno ha esperienza direttamente con Google direttamente e chiede il permesso di fare qualcosa di simile (per la ricerca, ecc.)? Vale la pena provare a scriverli e spiegare cosa sto cercando di fare e come, e vedere se posso ottenere il permesso per il mio progetto? E come andrei a contattarli? Grazie!

+0

Come si accumula la ricerca accademica di microsoft su google? –

+0

[questo aggiunge alla discussione] (https://www.quora.com/Why-doesnt-Google-have-an-official-API-for-Google-Scholar) –

+1

Spero che tu abbia impostato il tuo 'Utente- Agent' nelle intestazioni della richiesta correttamente - una richiesta che non lo imposta correttamente viene facilmente rilevata come un bot. :) –

risposta

1

Senza test, sono ancora abbastanza sicuro una delle seguenti fa il trucco:

  1. facile, ma piccola possibilità di successo:

    Cancella tutti i cookie dal sito in questione ogni richiesta rand (0,100),
    quindi cambia il tuo user-agent, lingua accettata, ecc. e ripeti.

  2. Un po 'più di lavoro, ma un ragno molto più robusta come risultato:

    inviare richieste tramite Tor, altri proxy, reti mobili, ecc per mascherare il vostro IP (anche fare il suggerimento 1 a ogni girare)

aggiornamento per quanto riguarda selenio ho perso il fatto che si sta utilizzando Selenio, dato per scontato che fosse una specie di linguaggio di programmazione moderno solo (so che il selenio può essere guidato dalle lingue più diffuse, ma anche come una sorta di plug-in del browser, che richiede pochissime abilità di programmazione).

Come ho quindi presumo la tua abilità di codifica non (o non erano?) Da capogiro, e per gli altri con le stesse limitazioni sono quando si utilizza il selenio, la mia risposta è o imparare un semplice, scripting lingua (PowerShell ?!) o JavaScript (dato che è il web su cui ti trovi ;-)) e prendilo da lì.

Se automatizzare lo scraping era semplice come un plug-in del browser, il Web avrebbe dovuto essere un luogo molto più confuso, offuscato e credenziale.