Newsgroup: it.comp.lang.delphi
Titolo: Problema con WebBrowser

Salve amici, mi stò scervellando su una cosa e non trovo soluzione :( (ho
rigirato google come un calzino).
Nel mio progetto uso il componentte TWebBrowser; quello che vorrei è che
alla pressione di un tasto nella mia form, riesca ad individuare tutti i
link presenti nella pagina web (e magari poi metterli in una
stringlist...poi vedrò).
Qualche idea su come rintracciare tutti i links????
Grazie dell'attenzione!

 Qualche idea su come rintracciare tutti i links????
Non ho mai usato il webbrowser, però da una rapida occhiata all'help sembra
che non abbia nessuna proprietà o metodo che fa al caso tuo.
L'unica cosa che mi viene in mente in questo momento è quella di usare,
quando vengono richiesti i link, un TIdHTTP, caricandoci dentro la pagina
che stai visualizzando e ricercando dentro al testo i vari <a href=...>
Così di primo acchito, dovrebbe essere abbastanza semplice.
In alternativa alla ricerca testuale nuda e cruda, ci sono anche dei
componenti che, una volta che ci carichi dentro un codice html, ti mettono a
disposizione una struttura gerarchica con tutti gli elementi (i tag)
ordinati e classificati, ma non chiedermi come si chiamano... sicuramente
sono su google.
Mi spiace non poter andare più a fondo, ma oggi è una giornata no :(
--
Jax
====
Di solito si detesta chi ci assomiglia, e i nostri stessi difetti visti
dal di fuori ci esasperano. (Proust)

 stringlist...poi vedrò).
Se vuoi fare il parsing dell'html lo devi prima estrarre. Questo è
codice che ho trovato in un progetto di prova che usava TWebBrowser:
procedure TForm1.Button2Click(Sender: TObject);
var DOM : variant;
  begin
    DOM := WB.Document;
    if WB.LocationURL <> '' then
    begin
       Memo1.Text := DOM.Body.OuterHTML;
    end
    else
    begin
      ShowMessage('No page available!');
    end;
  end;
Per avere maggiore flessibilità nel progetto definitivo ho usato
TEmbeddedWB.
Ciao
Antonio

 Grazie dell'attenzione!
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Di sempre cio' che senti e fai cio' che pensi."
    G.G. Màrquez

 Grazie dell'attenzione!
prego.


Purtroppo a me non trova tutti i link...anzi solo uno !
Io devo cercare "<a href="?ses=223671670&amp;w=kad">", o meglio ...nella
pagina devo cercare soltanto il numero dopo "ses=". Nella pagina ci sono
decine di link, cmq sono tutti uguali fino all' '&'.
A me serve solo il numerino magico...
Idee?
PS: Forse c'è un bug nel soregnet borland....i link che mi interessano sono
tutti all'interno di una tabella...bho!

 Idee?
L'idea più semplice è quella di caricare tutto il codice html in una
lista di stringhe ed estrarre i link che ti interessano da ogni stringa.
Eventualmente puoi usare le espressioni regolari ma una semplice
scansione delle stringhe può andare bene IMHO.
Antonio



non ho provato il codice preso dal link borland ma quello che ho adattato
io per questa pagina html
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="?ses=223671670&amp;w=kad">pippo</a></td>
  </tr>
</table>
</body>
</html>
mi ritorna una riga:
'pippo - 
http://localhost/lenuage/pippo.html?ses=223671670&w=kad
'
quindi, anche se completato mettendo l'indirizzo della pagina 
corrente davanti, il link viene trovato.
Ora, se a te serve solo in numeretto magico, e sai che prima c'è 
sempre '?ses=' e dopo sempre '&amp', guardati un'attimo le 
funzioni pos e copy...


 decine di link, cmq sono tutti uguali fino all' '&'.
prova una struttura come questa....
form1.web.OleObject.Document.Links.item(numerodilink)
ZioGian
PS..che stai combinando con emule ? sto sviluppando un programino pure
io...se vuoi contattami ziogian(atttt)
snipp.org
.


Dai un occhio qui...
http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_oleobject.htm
ZioGian