Quanta elaborazione da fare nel crawler? - buone pratiche di scansione

4

Attualmente sto lavorando a un progetto per animali domestici in Python con scrapy che raschia diversi siti di tipo ebay per le offerte immobiliari nella mia zona. Il fatto è che alcuni siti sembrano fornire dati più strutturati nelle loro pagine web (ad esempio, presentare una tabella di tutte le utilità che l'appartamento ha, ecc.) Mentre altri no. Quindi devo fare un po 'di analisi sui dati che faccio usando il meccanismo della pipeline della libreria.

La mia domanda è, tuttavia, quanta elaborazione dovrebbe effettivamente fare un crawler? Dovrebbe semplicemente estrarre pezzi grezzi di testo in base ad alcuni xPaths in modo da non sprecare potenza di elaborazione su di essi e lasciare che i dati vengano analizzati più avanti sulla riga da qualche altro lavoratore o dovrebbero farlo da solo?

Sembra che ci siano molte linee guida online su buone pratiche di crawling del web, ma non hanno trovato nessun buon progetto di crawler. Qualche suggerimento o regola empirica?

    
posta nikitautiu 17.06.2016 - 18:58
fonte

1 risposta

3

Quando ho lavorato con i crawler in passato, abbiamo utilizzato un approccio molto più disaccoppiato, come descritto di seguito:

Il documentalizzatore del contenuto di base leggerà da un database di URL di pagina che devono eseguire la scansione, recuperare i dati della pagina e archiviarli in un database per quell'URL in un modello agricoltore / lavoratore. Una volta che il contenuto di una pagina viene aggiunto al database, un messaggio viene inserito in un pub / sottotema per i parser di dati.

Il primo di questi abbonati è un raschietto URL. Analizzerà la pagina recuperata recuperata per gli URL, aggiungendo quelli nuovi al database del documentalizzatore di contenuti di base.

È possibile creare un numero qualsiasi di parser aggiuntivi per iscriversi al pub / sottotema ed estrarre tutti i dati necessari.

A mio parere questo approccio offre una grande quantità di estensibilità e scalabilità, ovviamente ci sono delle considerazioni sulla visibilità dei messaggi e assicurando che più lavoratori dello stesso tipo non raccolgano lo stesso lavoro, ma le soluzioni per questo sono ben documentate.

    
risposta data 13.07.2016 - 13:19
fonte

Leggi altre domande sui tag