Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    Ricavare contenuto pagina web in Webbrowser

    Già so che esistono molti topic simili, ma non risolvo. Dovrei estrapolare il contenuto di una pagina .php , preciso che il contenuto viene generato dinamicamente dal PHP, quindi forse è per questo che ho il problema.

    Il codice che utilizzo è:
    codice:
     
            WebBrowser1.Navigate("http://mybeat.it/newcode.php")
            Dim codice As String = WebBrowser1.DocumentText.toString()
    Solamente che andando poi a leggere il contenuto di codice non appare nulla. Può dipendere dal fattore del php? Come posso risolvere?
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ovviamente, dato che non ha ancora terminato di leggere la pagina.

    La riga

    Dim codice As String = WebBrowser1.DocumentText.toString()

    e quindi anche il codice che usa la stringa, deve essere inserito nell'evento

    WebBrowser1_DocumentCompleted

    che indica il completamento del caricamento della pagina.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Capito, grazie mille. Sai per caso come fare per far in modo che delle azioni in altre sub non siano eseguite fino a quando il caricamento della pagina del webbrowser non sia completato? La pagina per caricarsi richiede un millisecondo direi, anche meno dato che è solo un echo, ma per sicurezza..

    Edit: Risolto con If If WebBrowser1.StatusText = "Fine" Then...
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Un metodo è legare l'esecuzione del codice delle sub ad una variabile booleana impostata a true quando la pagina è completata.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Già, non ci avevo pensato.

    Comunque ora ho un altro problema...

    Questo è il codice "generale":

    codice:
            WebBrowser1.Navigate("http://mybeat.it/newcode.php")
            If WebBrowser1.StatusText = "Fine" Then
                Dim codice As String = WebBrowser1.DocumentText.ToString()
                MsgBox(codice)
                Dim clsRequest As System.Net.FtpWebRequest = _
                DirectCast(System.Net.WebRequest.Create("ftp://HOSTNAME/uploaded/" & codice & ".jpg"), System.Net.FtpWebRequest)
                clsRequest.Credentials = New System.Net.NetworkCredential("USERNAME", "PASSWORD")
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                Dim bFile() As Byte = System.IO.File.ReadAllBytes(tuttifile(attuale))
                Dim clsStream As System.IO.Stream = _
                clsRequest.GetRequestStream()
                clsStream.Write(bFile, 0, bFile.Length)
                clsStream.Close()
                clsStream.Dispose()
    AL posto di Hostname c'è l' host per accedere ftp al sito (fornitormi dal pannello ftp del venditore di hosting), al posto di username e password sempre dati per accedere tramite ftp.

    Solamente che ora mi dà l' errore: Errore del server remoto: (550) File non disponibile

    Ma prima si connetteva perfettamente. tuttifile(attuale) ritorna un percorso remoto (Esempio: C:\files\immagine.jpg) e codice è un codice composto da tutte cifre che andrà a comporre il file da caricare nel sito..

    Per capire meglio, ho reso visibile il webbrowser. La pagina viene caricata correttamente, il valore là appare correttamente (parlo di codice) ma nella variabile "codice" appunto appare <HTML></HTML> , non contando inoltre che non l' ho nemmeno messi quei tag nella pagina.

    Log errore del programma:

    System.Net.WebException: Errore del server remoto: (550) File non disponibile (ad esempio file non trovato o non accessibile)..
    in System.Net.FtpWebRequest.SyncRequestCallback(Objec t obj)
    in System.Net.FtpWebRequest.RequestCallback(Object obj)
    in System.Net.CommandStream.InvokeRequestCallback(Obj ect obj)
    in System.Net.CommandStream.Abort(Exception e)
    in System.Net.FtpWebRequest.FinishRequestStage(Reques tStage stage)
    in System.Net.FtpWebRequest.GetRequestStream()
    in WolfTeam_Screenshot_Viewer.Form1.im_upload_Click(O bject sender, EventArgs e) in C:\Users\danilo\Documents\Visual Studio 2008\Projects\Progetto\Progetto\Form1.vb:riga 92
    in System.Windows.Forms.Control.OnClick(EventArgs e)
    in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    in System.Windows.Forms.Control.WndProc(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
    in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    La riga 92 corrisponde a Dim clsStream As System.IO.Stream = _
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prima di continuare ad esaminare tutto il resto, queste righe

    codice:
    WebBrowser1.Navigate("http://mybeat.it/newcode.php")
    If WebBrowser1.StatusText = "Fine" Then
       Dim codice As String = WebBrowser1.DocumentText.ToString()
    non mi convincono ...

    Non ti avevo detto che la variabile codice andava valutata nell'evento Complete?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Prima di continuare ad esaminare tutto il resto, queste righe

    codice:
    WebBrowser1.Navigate("http://mybeat.it/newcode.php")
    If WebBrowser1.StatusText = "Fine" Then
       Dim codice As String = WebBrowser1.DocumentText.ToString()
    non mi convincono ...

    Non ti avevo detto che la variabile codice andava valutata nell'evento Complete?
    Sì, ma dato che l' errore era iniziato da quando ho cominciato ad usare quel metodo, pensavo che l' errore dipendesse da esso, ma così a quanto pare non è.

    Anche dichiarando una variabile booleana nel DocumentCompletated e riprendendola nella sub del click sull' immagine, non cambia nulla.

    codice:
        Private Sub im_upload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles im_upload.Click
            WebBrowser1.Navigate("http://mybeat.it/newcode.php")
            If carcomple = True Then
                Dim codice As String = WebBrowser1.DocumentText.ToString()
                Dim clsRequest As System.Net.FtpWebRequest = _
                DirectCast(System.Net.WebRequest.Create("ftp://HOST/uploaded/" & codice & ".jpg"), System.Net.FtpWebRequest)
                clsRequest.Credentials = New System.Net.NetworkCredential("USER", "PSWD")
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                Dim bFile() As Byte = System.IO.File.ReadAllBytes(tuttifile(attuale))
                Dim clsStream As System.IO.Stream = _
                clsRequest.GetRequestStream()
                clsStream.Write(bFile, 0, bFile.Length)
                clsStream.Close()
                clsStream.Dispose()
            End If
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            carcomple = True
        End Sub
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scrivendo la If subito dopo la Navigate tu pensi che venga eseguita solo quando la Navigate è completa, ma non è così.

    Una volta eseguita la Navigate, anche se la pagina non è stata completamente caricata, viene eseguita la If.

    Devi fare in modo di "attendere" (con un ciclo e una DoEvents) che la variabile diventi True (ovviamente dovrai gestire anche gli errori e/o i timeout).

    Fra l'altro, non capisco perché utilizzi il WebBrowser ... se devi solamente gestire quell'informazione, ti bastano le due righe

    codice:
    Dim wCli As System.Net.WebClient = New System.Net.WebClient()
    Dim codice As String = wCli.DownloadString("http://mybeat.it/newcode.php")
    e non hai neanche i problemi derivanti dall'esecuzione asincrona.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Mi hai a dir poco illuminato ahah

    Con i codici da te scritti funziona alla perfezione, anche se a mio parere è piu' lento del metodo col Webbrowser. Ho usato il webbrowser dato che googlegiando sulla questione di leggere il contenuto di una pagina web, o apparivano codici di 15-20 righe oppure appunto l' utilizzo del webbrowser.

    Grazie ancora
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dimentica il webbrowser se non ti serve veramente "vedere" una pagina caricata da internet.

    In genere questo controllo viene usato a sproposito da chi vuole interagire con il web ma non ha "studiato" le possibilità del framework .NET ...

    Dai un'occhiata approfondita ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.