Thread obsoleto Implementare Spider PHP

Controllo

Nuovo utente
Autore del topic
13 Maggio 2013
8
0
Miglior risposta
0
Salve a tutti, avrei l'esigenza di creare uno spider in PHP. Allora mi sono messo subito scriptare e ho elaborato un metodo.
Per prima cosa creo un array che contenga tutti i siti da esaminare, poi avvio un ciclo dove cerco in quel sito per altri links e gli aggiungo all'array, poi incremento di 1 la variabile "i" ogni volta e così facendo seleziono l'url successivo nell'array. A questo punto però viene il difficile: come faccio a ripetere questo procedimento finchè la var "i" è maggiore del numero di url contenuti nell'array?

Grazie in anticipo!
 
Riferimento: Implementare Spider PHP

while($i > count($array)) ? O.o

Comunque sposto in assistenza tecnica.
 
Riferimento: Implementare Spider PHP

Si, ho fatto così, ma il problema è che ovviamente il numero di siti trovati incrementa notevolmente via via che cerco, e praticamente non finisce mai, quindi lo script non può mai definirsi "completo". Volevo fare non so una cosa che finisce il ciclo dopo 100 risultati e ricarica la pagina. Che faccio metto un if(i > 100) redirect e poi break? Ci avevo pensato, ma il problema è che perderei tutti i dati contenuti nell'array e non ancora rielaborati.
 
Riferimento: Implementare Spider PHP

O ti salvi l'array in una sessione e fai tipo un "index from" da GET, ovvero tipo index=100 e parte dal 101 risultato nell'array, oppure boh, sinceramente non ho idee
 
Riferimento: Implementare Spider PHP

php non è il linguaggio adatto per uno spider a causa della poca efficienza che otterresti... comunque non è impossibile farlo. Io terrei una tabella nel db dove inserisci un specie di coda degli indirizzi da visitare. Poi costruisci una pagina php dove fai il fetching di una decina di pagine prese dalla "tabella delle code", prendi gli altri indirizzi nelle pagine elaborate e li aggiungi alla tabella delle code. Ovviamente li aggiungi se non sono presenti, altrimenti potresti peggiorare il sistema aggiungendo copioni di pagine da visitare. Una volta che hai fatto quello che dovevi fare ricarichi la pagina e riparte il ciclo. Uno spider per definizione non ha un punto di uscita... continua a visitare pagine e rivisita le stesse precedentemente visitate. Comunque se vuoi farlo terminare chiudi la pagina...