Estrarre codice html da winform

giovedì 03 aprile 2008 - 09.26

Lucifel Profilo | Junior Member

Ciao a tutti,

Ho un problema a cui non sono riuscito trovare una soluzione.
Ho una form con un bottone e al click devo ottenere il codice html di una pagina web che gli passo (ad esempio www.dotnethell.it)

Fatto ciò vorrei riuscire a trovare, all'interno di questo codice html, un particolare valore

Qualcuno mi sa aiutare?

Grazie

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

freeteo Profilo | Guru

ciao,
ti conviene fare una Webrequest al sito, scaricarti l'HTML che ti torna come stringa.
Questa stringa poi la "parsi" con le Regex , e vai a tirare fuori il testo che ti interessa.

Es:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

dove vengono trovati tutti i "div" con dentro del testo...( perhce' impostato il pattern "<div>(.*)</div>" della regex )

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Lucifel Profilo | Junior Member

Grazie per la risposta, ma non mi fuziona...
ho usato il tuo codice e:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questa riga non la riconosce... dice che cli non ha quel metodo... ma forse dipende dalla versione di .net. Attualmente uso il 2003, ma a casa ho il 2008, quindi magari provo da casa.

Pensavo fosse dovuto alla versione quindi ho usato questa

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ma anche qua mi dà errore... in pratica non riesce a recuperare la pagina.

Inizialmente io avevo usato questo codice:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ma dà lo stesso errore del codice che mi hai suggerito...

Soluzioni?

Grazie...

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

freeteo Profilo | Guru

ciao,
il codice che ti ho postato è framework 2.0 quindi visual studio 2005 o 2008, percio' a casa ti funzionera'.
Con la versione 2003 purtroppo non posso aiutarti, sicuramente c'e' qualcosa di analogo ma non saprei adesso...l'ho abbandonato definitivamente...cosa che ti consiglio di fare appena puoi altrimenti ti prendi indietro

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Lucifel Profilo | Junior Member

E' lo so... x conto mio mi tengo sempre aggiornato, infatti a casa sto usando il 2008, purtroppo però a lavoro non puoi scegliere... mi è stato imposto .net 2003 e quindi...
Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

freeteo Profilo | Guru

>E' lo so... x conto mio mi tengo sempre aggiornato, infatti a
>casa sto usando il 2008, purtroppo però a lavoro non puoi scegliere...
>mi è stato imposto .net 2003 e quindi...
Eh immagino...ci sono anche questi inconvenienti delle volte...cmq sicuramente c'e' qualcosa di analogo in 2003, forse ha una sintassi diversa, e devi lavorare con lo Stream..ma c'e' il modo di farti dare la versione "stringa" di una pagina html.

Altrimenti puoi passare attraverso un oggetto "WebBrowser" al quale imposti la proprieta' "URL" e poi ti fai dare da lui l'html che ha visualizzato...pero' la scelta è 1 po "un accrocchio" perche' dovresti aspettare che abbia finito di visualizzarla (evento DownloadComplete)



ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Lucifel Profilo | Junior Member

Grazie infinite x la tua risposta, mi è stata molto utile. Con .net 2008 funziona benissimo. Ora però devo chiederti un'altra cosa importante: l'espressione regolare x estrarre i dati.

In pratica all'interno della pagina html, sepolti in mezzo a una serie di tag x creare una tabella ci sono questi dati:

<span id="PRFX_EONI.IND_fix">3.942</span>
<span id="PRFX_EONI.IND_fixprec">4.006</span>
<span id="PRFX_EONI.IND_fix365">3.997</span>
<span id="PRFX_EONI.IND_fix365prec">4.062</span>

In pratica a me servono i numerini.

Mi sai aiutare?

Grazie fin da ora.

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

freeteo Profilo | Guru

ciao,
usa questa:

<span.*>(.*)</span>

con il "Groups[1]" dei vari Match, tiri fuori tutto il testo dentro al tag span, attento pero' che il valore che ti torna la Regex è sempre stringa, tu fatti la conversione a numerico ovviamente...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5