Ho scritto un cingolato di lavoro utilizzando Scrapy,
ora voglio controllarlo attraverso una webapp Django, vale a dire:Come configurare e lanciare un ragno Scrapy di programmazione (URL e impostazioni)
- Set 1 o più
start_urls
- Set 1 o più
allowed_domains
- Set
settings
valori - Avviare il ragno
- Stop/pausa/ripresa di un ragno
- recuperare alcune statistiche mentre è in esecuzione
- recuperare alcune statistiche dopo che lo spider è completo.
In un primo momento ho pensato scrapyd è stato fatto per questo, ma dopo aver letto il documento, sembra che sia più un demone in grado di gestire 'i ragni confezionati', alias 'uova Scrapy'; e che tutte le impostazioni (start_urls
, allowed_domains
, settings
) devono ancora essere codificate nel "egg scrapy" stesso; quindi non sembra una soluzione alla mia domanda, a meno che non mi sia sfuggito qualcosa.
Ho anche esaminato questa domanda: How to give URL to scrapy for crawling?; Ma la migliore risposta per fornire più url è qualificata dall'autore come un "brutto hacking", che coinvolge alcuni subprocessi python e una complessa gestione della shell, quindi non penso che la soluzione sia trovata qui. Inoltre, potrebbe funzionare per start_urls
, ma non sembra consentire allowed_domains
o settings
.
Quindi ho dato un'occhiata a scrapy webservices: Sembra essere la buona soluzione per il recupero delle statistiche. Tuttavia, esso richiede comunque un ragno in esecuzione, e nessun indizio di cambiare settings
Ci sono diverse domande su questo argomento, nessuno di loro sembra soddisfacente:
- using-one-scrapy-spider-for-several-websites questo sembra obsoleto, come Scrapy ha molto evoluto dal 0,7
- creating-a-generic-scrapy-spider Nessuna risposta accettata, ancora parlando di parametri della shell di regolazione.
So che lo scrapy è utilizzato negli ambienti di produzione; e uno strumento come scrapyd mostra che ci sono sicuramente alcuni modi per gestire questi requisiti (non riesco a immaginare che le uova di scrapy scrapyd trattate siano generate a mano!)
Grazie mille per il vostro aiuto.
Scrapy vengono creati con il comando 'deploy'; forse puoi dare un'occhiata a [Django Dynamic Scraper] (https://github.com/holgerd77/django-dynamic-scraper) per suggerimenti su come integrare il controllo Spider Scrapy in Django. –
Hai guardato [scrapy tool] (http://doc.scrapy.org/en/latest/topics/commands.html) o il [progetto slybot] (https://github.com/scrapy/slybot) per ispirazione? – jah
La mia risposta http://stackoverflow.com/questions/9814827/creating-a-generic-scrapy-spider/13054768#13054768 potrebbe aiutare – djinn