Ricercare stringhe nel codice di altre pagine

domenica 24 dicembre 2006 - 21.48

navarro87 Profilo | Newbie

Salve a tutti,
mi servirebbe uno script (possibilmente in vb.net) che mi permetta di verificare se una striga data in ingresso sia presente nel codice HTML di una pagina esterna.
Un po' come fanno quei siti che vogliono verificare se hai messo il loro link nelle tue pagine.
Avete qualche idea?
Grazie!

freeteo Profilo | Guru

ciao,
io farei una risocrsiva dentro una dir che passerai come parametro, e dentro li farei il "File.ReadAllText" che ti torna la stringa del contenuto del file.
Fatto questo ti basta controllare nella stringa con il "Contains(" se c'e' il codice che ti interessa.

Praticamtne farei in questo modo:
http://www.dotnethell.it/articles/FunzioniRicorsive.aspx

prendo il codice che fa la costruzione dell'albero (ovvero il listato numero 1), e invece di aggiungermi un nodo ad una treeview gli faccio guardare dentro al file, caricandone il contenuto su una stringa, cosi':
private void LeggiDir(string pDir) { foreach (string zDirs in System.IO.Directory.GetDirectories(pDir)) { LeggiDir(zDirs); } foreach (string zFls in System.IO.Directory.GetFiles(pDir)) { string zTestoFile = File.ReadAllText(zFls); if(zTestoFile.Contains("testo che voglio")) { ...
magari ti passi una lista come parametro del metodo e vai ad aggiungere il path del file che contiene, etc...oppure scrivi su db non so quello che ti serve quando hai trovato il testo dentro al file.

Questa soluzione non è il massimo dal punto di vista delle prestazioni, perche' va a caricare in memoria l'intero file per ogni dir, puoi migliorarla sicuramente ma se hai file piccoli puo' anche non importarti di questo aspetto....
ciao.

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

navarro87 Profilo | Newbie

Ho provato ma non funziona... mi dice che File.ReadAllText non accetta indirizzi URL come argomento. Esiste una istruzione che fa la stessa cosa ma che funziona per gli URL? Perchè sarebbe proprio perfetta!

freeteo Profilo | Guru

ciao,
beh ti basta fare un download del file allora, io pensavo andassi a vedere via windows, in modo da essere lato server sullo stesso pc dove c'e' il sito.

Ma a quanto pare tu vuoi farti una specie di browser che ti controlli se nell'html che ti viene giu' da un url, c'e' la stringa che vuoi.In questo caso, basta usare un oggetto "WebClient" :
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
cosi' facendo fai il download della pagina direttamente su una stringa e quindi vai a vedere se contiene quello che ti serve...è questo che cercavi?
ciao.

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

navarro87 Profilo | Newbie

Perfetto! Ti rigriazio!

freeteo Profilo | Guru

ciao,
se ti è stata utile accetta una risposta cosi' marchiamo il thread come risolto.
Grazie
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5