Newsgroup: it.comp.www.html
Titolo: web retriever

Sto sviluppando un web retriever integrato in un software più complesso.
Ebbene non solo non sono un'esperto di html ma non ho neppure il tempo per
poter studiare la cosa, quindi eccomi qui a lanciare questo appello a chi è
ben più esperto di me in materia.
Come potrete immaginare, ogni volta che scarico una pagina ne devo fare il
parsing, rintracciare tutti gli href e gli src (credo) e trasformarli da
assoluti a relativi, in quanto il sito deve poter funzionare anche in locale
(come fa qualunque altro web retriever). Ebbene la mia domanda è questa:come
funziona la cosa?
Cioè, se io incontro un href= "../../c|/miaCartella/index.htm" è già
relativo e funziona ovunque io lo metto ed invece se incontro un
href="/c|/miaCartella/index.htm" è assoluto, dunque funziona solo se metto
miaCartella dentro c:, quindi lo devo trasformare in
href="../../c|/miaCartella/index.htm"  per poterlo far funzionare ovunque?
insomma il mio approccio è corretto o ho cannato tutto?
Ciao e grazie
Daniele Grignani

 insomma il mio approccio è corretto o ho cannato tutto?
Mi sembra tu stia facendo un po' di confusione: questo tuo "web
retriever" deve prendere pagine da server in rete o locali? Nel primo
caso, non vedrai mai un path assoluto riferito al disco! Al massimo
vedrai path assoluti come /dir1/dir2/file.html, riferiti al sito dove si
trova la pagina (e questo path va trasformato da assoluto a relativo),
oppure 
http://pippo.com/dir1/dir2/file.html
, riferiti ad un altro sito,
e il tuo programma se ne puo' fregare, a meno che in realta' non sia
riferito al solito sito, nel qual caso devi ri-trasformare in relativo e
incazzarti col webmaster :-)
Se invece prevedi di incontrare path che comprendano lettere di unita',
stai lavorando in locale. Il succo comunque e' lo stesso, invece del
nome del dominio hai la lettera dell'unita'.
Un'altra cosa: il tuo web retriever sara' spesso impotente di fronte ai
link fatti in javascript, che si diffondono sempre piu'. L'ho scoperto
col Teleport Pro, quindi come vedi anche prodotti piu' blasonati del tuo
hanno questo problema :-))
Ciao,
Alfio

Ti ringrazio per la risposta: come giustamente ho annunciato nel mio primo
post ho le idee poco chiare in materia html.
Mi spiego meglio: insomma questo web retriever deve scaricare files da un
server ed in effetti l'esempio che ho fatto per illustrare il problema era
poco chiaro. Devo poter scaricare siti da un server e la questione è,
appunto, questa sintassi relativa ai path relativi/assoluti.
Mi spiego: se ho ben capito con un'HREF="/dir1/dir2/file.html" vuol dire che
ho un path assoluto. Quello relativo sarà dunque HREF="dir1/dir2/file.html"?
Inoltre: lo stesso problema lo ho con gli SRC?
Ed avendo fatto 30 faccio pure 31: per essere sicuro di questa cosa dei
relativi/assoluti: che devo cercare e come devo modificare cio che trovo?
Per quanto riguarda i link http://, ebbene non mi preoccupo e neppure mi
preoccupo per i link in javascript, non ci posso fare nulla: come hai detto
tu programmi ben più sofisticati hanno lo stesso problema...
Ti ringrazio per l'eventuale tua nuova risposta. Purtroppo non avendo il
tempo per documentarmi devo per forza ricorrere all'invadenza....
Ciao
Daniele Grignani
P.S.
Scusa ma ho sbagliato ed invece che "Rispondi al..." ho clickato "Rispondi"
e quindi ti ritroverai una copia di questa nella mail box.....


 relativi/assoluti: che devo cercare e come devo modificare cio che trovo?
Se te ne freghi dei link esterni, e' facile:
- se il path inizia con "/" e' assoluto, altrimenti e' relativo.
- quelli relativi li lasci cosi' come sono
- per trasformare gli assoluti in relativi, il modo piu' semplice e' di
fare una stringa che abbia all'inizio tanti "../" quante directory devi
risalire dal file che stai esaminando per arrivare alla root, e poi
mettere il path assoluto pari pari (eliminando la doppia "//"). Non e'
il massimo dell'eleganza, ma funziona.
Ciao
Alfio

 mettere il path assoluto pari pari (eliminando la doppia "file://"). Non
