Newsgroup: it.lavoro.informatica
Titolo: Realizzare uno spider... quale linguaggio e tecniche utilizzare ?

Salve,
desideravo chiedervi un consiglio tecnico riguardante la
realizzazione di uno spider per un motore di ricerca del tipo:
http://www.immolo.it
Questo motore di ricerca ha ovviamente al suo interno
uno spider, che attualmente è realizzato completamente
in PHP e che lavora con le espressioni regolari per il parsing
del codice HTML delle pagine contenenti gli annunci immobiliari.
Dovendo realizzare (voi) uno spider avanzato per la rilevazione
degli annunci immobiliari (che chiaramente effettui un parsing
del codice HTML) su che linguaggio vi buttereste e quali
tecniche di programmazione utilizzereste ?
Io pensavo, in seguito, di realizzare qualcosa di più robusto
ed efficiente dell'attuale spider realizzato in PHP ed attivato
attraverso tutta una serie di marchingegni necessari per
simulare in qualche modo una sorta di processo residente.
Che ne dite di Java ? Io ho soltanto una preparazione molto
di base e superficiale su tale linguaggio, derivante da qualche
piccolo progetto accademico realizzato ai tempi dell'università.
Inoltre, mi chiedevo se l'esecuzione di uno spider scritto in java
e residente su un server in hosting fosse qualcosa di problematico
oppure risultasse più o meno fattibile avendo impostati i necessari
permessi di lettura ed esecuzione lato server (OS).
... quasi quasi pensavo seriamente di intraprendere la strada di java
che credo mi appassionerebbe non poco da un punto di vista stilistico,
e che tra l'altro mi potrebbe tornare utile per eventuali sbocchi
professionali vista l'attuale situazione stagnante nel mercato del lavoro.
Attendo impazientemente i vostri pareri.
Riccardo
-- 
* Immolo - Motore di ricerca immobiliare
* web: 
http://www.immolo.it

 e residente su un server in hosting fosse qualcosa di problematico
IMHO se devi realizzare uno spider, un server tutto suo lo deve avere,
sia per un discorso di connettivita' che per una gestione migliore
delle risorse.
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 (cut)
Ciao.
Sinclair

 delle risorse.
Non sono d'accordo con il concetto in termini assoluti, tuttavia è
chiaro che dipende sempre dalle dimensioni del progetto e dal carico
di lavoro effettivamente generato dal server.
Ritengo che uno spider con un carico di lavoro modesto possa
girare senza grossi problemi anche su un server in hosting.
Attualmente, vorrei concentrarmi sulle questioni tecniche per la
realizzazione di tale spider... dopo, se sarà il caso, affronterò
anche le questioni sistemistiche.
La mia domanda in merito all'hosting era posta principalmente
per capire quali problematiche potessero esserci nell'eseguire
uno spider scritto in java in un server in hosting... magari è
una domanda piuttosto banale, ma non avendo esperienza
gradirei capire meglio, magari da qualcuno più esperto di me.
Ciao,


 permessi di lettura ed esecuzione lato server (OS).
Devi avere sul server *almeno* un servlet container.

 Sinclair
Grazie per il tuo parere.


 Attendo impazientemente i vostri pareri.
prima scelta c/c++ (prestazionale ma occhio a come lo disegni )
seconda scelta java (+ semplice ma meno performante compensi leggermente 
con + threads)

 Devi avere sul server *almeno* un servlet container.
Io pensavo ad un semplice programma scritto in java ed
eseguito con qualcosa del tipo: "java spider"... non so
se questo abbia molto a che fare con le servlet.
Comunque, penso che dovrei approfondire molto di più
l'argomento java per poter entrare così in dettaglio...
al momento mi basta farmi un'idea di massima.
Grazie,


 realizzazione di uno spider per un motore di ricerca del tipo:
Ti hanno già risposto in molti, per cui aggiungo solo una piccola 
considerazione. Puoi utilizzare qualsiasi linguaggio per creare uno 
spider, ti consiglio però linguaggi che rendono semplice la 
manipolazione di stringhe.
Ammesso che non conosci nessuno dei tre, ti consiglio (nell'ordine):
Ruby, Python, Perl.
Cheers,
-- 
Antonio Cangiano
Administrator of 
www.visualcsharp.it
La Comunità Italiana della programmazione C# e .NET

 Riccardo
Prego. Ciao.
Sinclair

Il Sun, 11 Sep 2005 11:19:22 +0200, Riccardo ha scritto:
[cut]
Se hai la possibilità di far girare un servizio su un server Windows io
opterei per 
dot.net
, magari in 
vb.net
Il framework di microsoft ha decine di classi adatte allo scopo (per il
web, gestione stringhe, etc), il problema è che se non hai un background in
questo ambiente di programmazione non è proprio banale iniziare...
Ciao
PaF

 con + threads)
Pensavo che java e c/c++ avessero un coefficiente di difficoltà più o meno 
uguale.
Sicuramente è meno performante per via della Virtual Machine... ma non è 
possibile
gestire più threads anche con c/c++ oltre che con java ?
(scusa la probabile banalità delle mie domande)
Ciao


 Ruby, Python, Perl.
Non conosco nessuno dei tre... nel senso che no li ho mai usati.
Ruby: Mai sentito, mi è praticamente sconosciuto
Python: Ne ho sentito parlare bene più di una volta
Perl: Credo sia uno dei linguaggi più usati per la generazione precedente la 
mia
Li terrò tutti e tre in considerazione.
Grazie.


 PaF
Preferisco scartare a priori la soluzione microsoft... cmq grazie anche a 
te.
P.S.
Purtroppo ho notato che non sei l'unico a cui piaceva più "CasaFinder"
come nome che non "Immolo"... speriamo di ricevere anche dei pareri
opposti (vedi post [OT] - CasaFinder diventa Immolo).
Ciao,


 Grazie.
Ciao.
Sinclair

 gestire più threads anche con c/c++ oltre che con java ?
certo
ma io intendevo dire che puoi fare molto più facilmente in java un 
multithread che in c++ , quindi confrontavo un programma in java multi 
thread con lo stesso in c++ monothread.
Se poi ci metti il multithread in c , java perde di nuovo (IMHO).
ciao

 per niente.
letto giovedi o venerdi annuncio di dadanet per programmatore perl , non 
so dove.
ops. mi hai messo nel killfile dandomi della testa di cazzo che te lo 
dico a fare :D

 quanto semplice da imparare.
Python e' molto facile da imparare ed e' sicuramente molto indicato per
applicazioni del genere.
Considera invece che realizzandolo in C/C++ avresti solo complicazioni
senza un adeguato miglioramento nelle prestazioni, essendo la rete il
vero collo di bottiglia per questo tipo di applicazioni.
Ti consiglio inoltre di separare lo spider dal server vero e proprio e
dedicargli una macchina separata.
Mi sorprende leggere qui che Python non e' molto diffuso in Italia.
Uno dei massimi "luminari" di questo linguaggio a livello mondiale e'
proprio un italiano, Alex Martelli, autore di vari libri
sull'argomento, tra cui "Python in a Nutshell" e "Python Cookbook" con
la O'Really (e' stato assunto da Google qualche mese fa)
E anch'io scrivevo qualche tool in Python gia' nel 98-99 quando ancora
lavoravo in Italia (anche se il linguaggio principale era comunque il
C++).
In bocca al lupo,
Fabio

Sicuramente, questo è uno dei motivi per cui non mi ci dedicherei.
Infatti non si può scegliere una tecnologia a caso.... ma se non hai
background in nessun
linguaggio non credo che il c++ sia uno scherzo :-)
IMHO :
Fare una cosa seria : C++
Fare una cosa velocemente e funzionate : Perl / forse php
Fare una cosa + professionale in unix : java
Fare una cosa + professionale in windows : .net
Ma tutti i linguaggi si portano dietro ambienti, vantaggi e svantaggi,
e poi sono solo una parte della soluzione... c'è il DB c'è
l'indicizzazione ecc.... sicuro che se hai intenzione di usarlo in un
server in hosting... la scelta si restringe moltissimo ! Al massimo si
sta parlando di uno script.

 opposti (vedi post [OT] - CasaFinder diventa Immolo).
Avevo sottovalutato l'accento con cui leggi la parola, in effetti in un
modo ricorda il cugino di pisolo (ìmmolo), in un altro il verbo immolare
(immòlo) come ha scritto Fra...
Tornando più in topic, non ho letto un'informazione importante: il tuo
server è in hosting o ti affidi a qualche provider con il supporto solo a
php o .net (esempio Aruba) ?
Ciao
PaF

 PaF
Ciao
Riccardo,


 (con un controsenso).
Anni fa uscì la versione 5 che rivoluzionò discretamente il Perl.
E si parla sempre di più della futura versione 6 
(
http://dev.perl.org/perl6/
)