Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    12

    [VB.NET] Importare ed esportare dati da web

    Ciao a tutti ragazzi, ho un problema: volvevo fare un piccolissimo programmino che traducesse una frase inserita in una textbox e me la traducesse in una lingua specifica. Pensavo di appoggiarmi a Google Traduttore. Mi potresti spiegare come posso fare? Più che altro vorrei avere una cosa del genere: TextBox1 dato in input TextBox2 dato prelevato dal web. Come potrei fare? Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Secondo me potresti provare utilizzando l'oggetto WebBrowser.
    Simuli la navigazione sulla pagina di google traduttore, quando la pagina è caricata completamente tramite codice VB.net scrivi nella casella corretta, simuli la pressione del bottone e aspetti che la pagina si ricarichi, a quel punto vai a leggere dalla casella relativa dove c'è la traduzione.

    Sergio

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    12
    Quote Originariamente inviata da SirJo Visualizza il messaggio
    Secondo me potresti provare utilizzando l'oggetto WebBrowser.
    Simuli la navigazione sulla pagina di google traduttore, quando la pagina è caricata completamente tramite codice VB.net scrivi nella casella corretta, simuli la pressione del bottone e aspetti che la pagina si ricarichi, a quel punto vai a leggere dalla casella relativa dove c'è la traduzione.

    Sergio
    Grazie della risposta... però come faccio a collegare i vari pulsanti e textbox alla pagina di google traduttore? :\ Grazie mille

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cioè, in pratica qualcuno deve scrivere tutto il codice per te ... giusto?

    Hai iniziato ad usare il componente indicato e ad avviare la navigazione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Quote Originariamente inviata da N2O3 Visualizza il messaggio
    Grazie della risposta... però come faccio a collegare i vari pulsanti e textbox alla pagina di google traduttore? :\ Grazie mille
    ElementoHtml.CasellaDiTestoDiGoogle.Text = TextBox1.Text

    Ma questo lo vedremo in seguito, come ti hanno suggerito inizia con il creare un nuovo progetto, mettici un form con l'oggetto WebBrowser, guardati un po' i metodi Navigate e simili, vediti un po' la proprietà IsBusy e simile, e fai partire la navigazione sulla pagina di Google traduttore, e vedi se riesci a capire quando la pagina è caricata dal tutto, poi vediamo il resto.

    Sergio

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    12
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Cioè, in pratica qualcuno deve scrivere tutto il codice per te ... giusto?

    Hai iniziato ad usare il componente indicato e ad avviare la navigazione?
    Nono tranquillo... volevo solo sapere come collegare la textbox ad una pagina web... non ho ancora molta esperienza ecco

    Quote Originariamente inviata da SirJo Visualizza il messaggio
    ElementoHtml.CasellaDiTestoDiGoogle.Text = TextBox1.Text

    Ma questo lo vedremo in seguito, come ti hanno suggerito inizia con il creare un nuovo progetto, mettici un form con l'oggetto WebBrowser, guardati un po' i metodi Navigate e simili, vediti un po' la proprietà IsBusy e simile, e fai partire la navigazione sulla pagina di Google traduttore, e vedi se riesci a capire quando la pagina è caricata dal tutto, poi vediamo il resto.

    Sergio
    Ho caricato il componente Webbrowser, ho impostato la pagina iniziale sul traduttore di Google. I metodi navigate, go back/go forward ecc li conosco già. IsBusy non ho capito come si usa... Praticamente ottiene un valore indicato che il webbrowser sta caricando un documento?
    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Quote Originariamente inviata da N2O3 Visualizza il messaggio
    Ho caricato il componente Webbrowser, ho impostato la pagina iniziale sul traduttore di Google. I metodi navigate, go back/go forward ecc li conosco già. IsBusy non ho capito come si usa... Praticamente ottiene un valore indicato che il webbrowser sta caricando un documento?
    Grazie
    Per capire se la pagina è completamente caricata, hai due sistemi per farlo: o utilizzi gli eventi, oppure entri in loop e testi la proprietà IsBusy, che ti dice se il componente è "occupato".

    Per farlo in maniera semplice (anche se non è il massimo della programmazione), puoi tulizzare questa routine:

    Private Sub WaitWB()
    Application.DoEvents()
    Threading.Thread.Sleep(300)
    Application.DoEvents()
    Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete And Not WebBrowser1.IsBusy
    Threading.Thread.Sleep(150) 'per non appensatire
    Application.DoEvents()
    Loop

    End Sub

    Poi nel tuo ciclo principale basta che fai:

    WebBrowser1.Navigate("https://translate.google.it/?hl=it&tab=wT")
    WaitWB()

    A questo punto devi analizzare la pagina HTML che ti è arrivata, utilizzando WebBrowser1.Document.Body.OuterHtml e tramite anche un oggetto HtmlElementCollection puoi scorrere la pagina finchè trovi l'oggetto desiderato.

    Poi, per scrivere nella casella di testo, puoi (ad esempio) usare:
    WebBrowser1.Document.GetElementById("source").SetA ttribute("value", "il testo da tradurre")

    Sergio

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    12
    Quote Originariamente inviata da SirJo Visualizza il messaggio
    Per capire se la pagina è completamente caricata, hai due sistemi per farlo: o utilizzi gli eventi, oppure entri in loop e testi la proprietà IsBusy, che ti dice se il componente è "occupato".

    Per farlo in maniera semplice (anche se non è il massimo della programmazione), puoi tulizzare questa routine:

    Private Sub WaitWB()
    Application.DoEvents()
    Threading.Thread.Sleep(300)
    Application.DoEvents()
    Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete And Not WebBrowser1.IsBusy
    Threading.Thread.Sleep(150) 'per non appensatire
    Application.DoEvents()
    Loop

    End Sub

    Poi nel tuo ciclo principale basta che fai:

    WebBrowser1.Navigate("https://translate.google.it/?hl=it&tab=wT")
    WaitWB()

    A questo punto devi analizzare la pagina HTML che ti è arrivata, utilizzando WebBrowser1.Document.Body.OuterHtml e tramite anche un oggetto HtmlElementCollection puoi scorrere la pagina finchè trovi l'oggetto desiderato.

    Poi, per scrivere nella casella di testo, puoi (ad esempio) usare:
    WebBrowser1.Document.GetElementById("source").SetA ttribute("value", "il testo da tradurre")

    Sergio
    Grazie per la risposta. Ho capito tutto tranne: WebBrowser1.Document.Body.OuterHtml
    Praticamente io ho messo la TextBox2 che varia a seconda di cosa uno scrive. Allora ho messo il seguente codice:
    codice:
    Public Class Form2
        Private Sub WaitWB()
            Application.DoEvents()
            Threading.Thread.Sleep(300)
            Application.DoEvents()
            Do Until WebBrowser1.ReadyState = WebBrowserReadyState.Complete And Not WebBrowser1.IsBusy
                Threading.Thread.Sleep(150) 'per non appensatire
                Application.DoEvents()
            Loop
            WebBrowser1.Navigate("https://translate.google.it/?hl=it&tab=wT")
            WaitWB()
        End Sub
    
    
    
    
        Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
            WebBrowser1.Document.Body.Out()
            WebBrowser1.Document.GetElementById("source").SetAttribute("value", TextBox2.Text)
    
    
        End Sub
    
    
    End Class
    Come procedo? Grazie mille

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Ma hai visto la routine WaitWB() che ti ho inviato ??
    Perchè l'hai modificata ??
    Perchè dopo la riga Loop hai aggiunto quelle due righe ???

    Poi ti consiglio di non usare (almeno per ora) l'evento TextChanged ma ti usare un pulsante, e dentro l'evento Click di quel pulsante ci metti
    WebBrowser1.Navigate("https://translate.google.it/?hl=it&tab=wT")
    WaitWB()
    WebBrowser1.Document.GetElementById("source").SetA ttribute("value", TextBox2.Text)

    Sergio

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    12
    Quote Originariamente inviata da SirJo Visualizza il messaggio
    Ma hai visto la routine WaitWB() che ti ho inviato ??
    Perchè l'hai modificata ??
    Perchè dopo la riga Loop hai aggiunto quelle due righe ???

    Poi ti consiglio di non usare (almeno per ora) l'evento TextChanged ma ti usare un pulsante, e dentro l'evento Click di quel pulsante ci metti
    WebBrowser1.Navigate("https://translate.google.it/?hl=it&tab=wT")
    WaitWB()
    WebBrowser1.Document.GetElementById("source").SetA ttribute("value", TextBox2.Text)

    Sergio
    Scusa stavo facendo delle prove... sono alle prime armi con questo linguaggio, ho imparato qualcosina guardando i video su youtube xD... comunque ho fatto come hai detto. Ora inserisco la frase, clicco su traduci e mi compare "Visualizzare solo le informazioni delle pagine web fornite in modo protetto?". Quindi si evince che c'è un collegamento tra il programmino e il sito di google. Ora come vedo la pagina HTML? Perchè usando anche chrome(facendo ispezione elemento), il codice riferito al campo di scrittura è il seguente:
    codice:
    <textarea id="source" name="text" wrap="SOFT" tabindex="0" dir="ltr" spellcheck="false" autocapitalize="off" autocomplete="off" autocorrect="off" style="box-sizing: border-box; overflow-y: hidden; overflow-x: auto; padding-right: 20px;" class="goog-textarea"></textarea>
    Mentre il box di uscita è il seguente:
    codice:
    <span id="result_box" class="short_text" lang="en"><span class="hps" contenteditable="false" tabindex="-1">prova</span></span>
    Comunque ti ringrazio per tutto il tempo che mi stai dedicando. Mi farebbe piacere se mi spiegassi come trovi i vari valori, poi per il codice mi ingegnerò io xD
    Grazie mille

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.