Non voglio eseguire la scansione simultanea e mi blocco. Vorrei inviare una richiesta al secondo.Come ritardare ogni richiesta in scrapy?
risposta
C'è un setting per questo:
DOWNLOAD_DELAY
predefinito:
0
La quantità di tempo (in secondi) che il downloader deve attendere prima di il download di pagine consecutive dalla stessa sito web. Questo può essere utilizzato per limitare la velocità di scansione per evitare di colpire troppo i server.
DOWNLOAD_DELAY = 0.25 # 250 ms of delay
leggere la documentazione: https://doc.scrapy.org/en/latest/index.html
Grazie. Ha funzionato :) –
Se metti 'DOWNLOAD_DELAY = 1', non penso che tu possa ottenere 60 pagine in un minuto. È anche frenato dalla velocità di download e da tutti i tipi di overhead. Direi che ti concede solo un limite superiore di scraping in modo da non colpire troppo i siti di destinazione. –
È anche possibile impostare 'download_delay' attributo su ragno, se non si vuole scaricare un ritardo globale. Vedere http://doc.scrapy.org/en/latest/faq.html#what-does-the-response-status-code-999-means
class S(Spider):
rate = 1
def __init__(self):
self.download_delay = 1/float(self.rate)
tasso fissa un importo massimo di pagine può essere scaricato in un secondo.
Puoi aggiungere una descrizione o una spiegazione di ciò che fa. Allo stato attuale devo votare questa risposta per la cancellazione. – Numeron
ritardi possono abbiamo impostato in 2 dice: -
Siamo in grado di specificare il ritardo durante l'esecuzione del cingolato. Es. Scrapy campione crawl --set DOWNLOAD_DELAY = 3 (che significa ritardo di 3 secondi tra due richieste)
Oppure possiamo specificare globaly nel settings.py DOWNLOAD_DELAY = 3
da Scrapy default prende ritardo 0,25 secondi tra 2 richieste.
se si desidera mantenere un ritardo di download di esattamente un secondo, l'impostazione di DOWNLOAD_DELAY=1
è il modo per farlo.
Ma scrapy ha anche una funzione per impostare automaticamente i ritardi di download chiamati AutoThrottle
. Imposta automaticamente ritardi in base al carico sia del server Scrapy che del sito Web che si sta analizzando. Funziona meglio di un ritardo arbitrario.
Leggi ulteriori informazioni sono riportate a http://doc.scrapy.org/en/1.0/topics/autothrottle.html#autothrottle-extension
ho strisciato più di 100 domini e non stato bloccato con AUTOMANETTA acceso
Accanto DOWNLOAD_DELAY, è anche possibile utilizzare la funzione di AUTOMANETTA Scrapy, https://doc.scrapy.org/en/latest/topics/autothrottle.html
Cambia la quantità di ritardo tra le richieste in base al file delle impostazioni. Se imposti 1 sia per il ritardo iniziale che per quello massimo, attenderà 1 secondo in ogni richiesta.
Lo scopo originale è quello di variare i tempi di ritardo in modo che il rilevamento del bot sia più difficile.
Hai solo bisogno di metterlo in settings.py come segue:
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 1
AUTOTHROTTLE_MAX_DELAY = 3
- 1. Richiesta ritardo scrapy
- 2. Invia richiesta messaggio in Scrapy
- 3. Come ritardare in Java?
- 4. Come ritardare ngAnimate in ngRepeat
- 5. Come ritardare tra ogni ciclo della funzione jQuery.each?
- 6. Come CQ autentica ogni richiesta?
- 7. richiesta Scrapy + risposta + tempo di download
- 8. Imposta intestazioni per richiesta di shell scrapy
- 9. NSTimer - come ritardare in Swift
- 10. Come ritardare un CABasicAnimation?
- 11. Come ritardare l'animazione jquery?
- 12. Come aggiornare DjangoItem in Scrapy
- 13. Verificare l'indirizzo IP utilizzato per una richiesta Python/Scrapy + ProxyMesh
- 14. Devo usare ValidateAntiForgeryToken in ogni richiesta POST?
- 15. Come ritardare l'azione JavaScript in QML?
- 16. Come posso ritardare un evento in xcode?
- 17. Come ritardare tra 2 animazioni?
- 18. Come ritardare il plug-in di Jquery UIBlock?
- 19. Scrapy Shell e Scrapy Splash
- 20. ApplicationUserManager.Create chiamato su ogni richiesta
- 21. errore Scrapy: exceptions.ValueError: Mancare schema a richiesta URL:
- 22. Come ricaricare gem per ogni richiesta in Rails 3.2?
- 23. Scrapy dati Python con Scrapy
- 24. Come disattivare la registrazione in Scrapy (Python)
- 25. Posso ritardare jQuery addClass?
- 26. ASP.NET MVC 2 VirtualPathProvider GetFile ogni volta per ogni richiesta
- 27. start_urls dinamico in scrapy
- 28. Ritardare animazioni CSS3
- 29. Python & Scrapy: Problema con la versione Scrapy
- 30. Eseguire un metodo in ogni richiesta in MVC, C#?
[qui] (http: // StackOverflow.it/questions/30404364/scrapy-delay-request) hai una soluzione esplicita. – hereje