Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Ricerca in pagine web.
Forum - Visual Basic 6 - Ricerca in pagine web.

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Gnune (Normal User)
Newbie


Messaggi: 7
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 16:48
Giovedì, 16/04/2009
Ciao a tutti. Spero che qualcuno mi possa aiutare.
Ho la necessitá di creare un programmino in vb che faccia le seguenti operazioni:
1) Apra un file di testo contenente un elenco di indirizzi web.
2) Apra un file di testo contenente delle parole.
3) Apra ad uno ad uno gli indirizzi web e faccia la ricerca di queste parole.
4) Se trova una parola la scrive in una listbox (non mi interessa dove é scritta ma che sia scritta).
5) Tornare al punto 3.

Bene, sono riuscito a farlo utilizzando un codice che ho trovato su questo forum, solo che questo codice lavora su file html, scrive cioé il file html in una textbox multilinea e poi io faccio la ricerca con instr().
Il problema é che ci impiega dai 10 ai 20 secondi (alle volte anche 30) per pagina, mentre a me servirebbe qualcosa di piú rapido. Mediamente internet explorer impiega dai 2 ai 3 secondi per rigenerare una pagina.

Qualcuno ha un´idea di come posso farlo.
Un grazie anticipato a chi mi saprá rispondere.
Giuseppe.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 16:59
Giovedì, 16/04/2009
mostra il codice che usi...

PM Quote
Avatar
Gnune (Normal User)
Newbie


Messaggi: 7
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 20:17
Giovedì, 16/04/2009
É ancora in stato embrionale, al momento addiziono le parole trovate e l´orario in una listbox.

Dim ST$(5)

Private Sub VediURL(URL As String, Txt As TextBox)
Inet1.OpenURL URL     'apre l' url da noi fornita
Txt = Inet1.OpenURL   'preleva il codice e lo visualizza nella textbox
End Sub

Private Sub EliminaHTML(Txt As TextBox)
    If InStr(Txt, "<") Then
        Txt.SelStart = InStr(Txt, "<") - 1
        Txt.SelLength = InStr(Txt, ">") - Txt.SelStart
        Txt.SelText = ""
        EliminaHTML Txt
    End If
End Sub

Private Sub Command1_Click()
Loop1:
VediURL Text1, Text2
a$ = Text2
For i = 0 To 4
  If InStr(a$, ST$(i)) > 0 Then
    b$ = Time$ + "   " + "   " + ST$(i)
    List1.AddItem b$
  End If
Next
GoTo Loop1:
End Sub

Private Sub Command2_Click()
  End
End Sub

Private Sub Form_Load()
' apro l´elenco degli indirizzi web
  Open "C:\elenco.txt" For Input As #1
  Line Input #1, nome$
  Close (1)
  Text1 = nome$
' apro il file con le parole da ricercare
  Open "C:\parole.txt" For Input As #1
  for i=0 to 4
    Line Input #1, St$(i)
  next
  Close(1)
End Sub

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 21:55
Giovedì, 16/04/2009
mmm.... il codice l'hai fatto tu? E dov'è che hai problemi? cosa non riesci a fare?

PM Quote
Avatar
Gnune (Normal User)
Newbie


Messaggi: 7
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 22:18
Giovedì, 16/04/2009
Una parte del codice l´ho trovato su questo forum, io l´ho solo adattato alle mie esigenze.
Questo codice trasferisce nella variabile Text2 tutto il sorgente della pagina, poi io con instr() vado a cercare le parole che mi servono.
Solo che ci mette un sacco di tempo: Se rigenero la pagina sia com internet explorer o firefox ci mette um paio di secondi, qui invece arriva anche a 30 per leggere l´html e fare la ricerca.
Volevo sapere se c´é la possibilitá di snellire questo codice usando il comando webbrowser. Purtroppo ho cercato in rete ma non ho trovato nessun esempio concreto che mi potesse aiutare o qualcosa che mi descrivesse come funziona.
Ciao.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:52
Venerdì, 17/04/2009
questa sub a che ti serve?

Private Sub EliminaHTML(Txt As TextBox)
    If InStr(Txt, "<") Then
        Txt.SelStart = InStr(Txt, "<") - 1
        Txt.SelLength = InStr(Txt, ">") - Txt.SelStart
        Txt.SelText = ""
        EliminaHTML Txt
    End If
End Sub

PM Quote
Avatar
Gnune (Normal User)
Newbie


Messaggi: 7
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 16:58
Venerdì, 17/04/2009
Nel codice originale questa chiamate veniva fatta alla fine:

Private Sub Command1_Click()
Loop1:
VediURL Text1, Text2
a$ = Text2
For i = 0 To 4
  If InStr(a$, ST$(i)) > 0 Then
    b$ = Time$ + "   " + "   " + ST$(i)
    List1.AddItem b$
  End If
Next
EliminaHTML Text2
GoTo Loop1:
End Sub  

Credo che dovrebbe azzerare la variabile Text2 (e ti ripeto credo visto che di queste cose non né conosco molto).
Potrei anche avere sbagliato, ed é proprio per questo che sto chiedendo aiuto in questo forum a qualcuno che ne sappia piú di me.
Ciao.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 18:01
Venerdì, 17/04/2009
Da quel che vedo mi dai l'idea di uno che diciamo ha appena iniziato... e praticamente ti dovrei fare tutto il codice io... secondo me al momento dovresti cercare di dedicarti di più alla teoria e a progetti più semplici...

PM Quote
Avatar
Gnune (Normal User)
Newbie


Messaggi: 7
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 19:28
Venerdì, 17/04/2009
Testo quotato

Postato originariamente da GrG:

Da quel che vedo mi dai l'idea di uno che diciamo ha appena iniziato... e praticamente ti dovrei fare tutto il codice io... secondo me al momento dovresti cercare di dedicarti di più alla teoria e a progetti più semplici...



Vabbe´...
I miei limiti in questa area si potevano vedere giá dal mio primo post.
Non capisco perché mi hai fatto il terzo grado e poi mi dici di arrangiarmi, credo che sarebbe stato piú semplice da parte tua ignorarmi giá dall´inizio.
Il problema é che io ho veramente bisogno di questo programma, cercheró in rete altri forum, non c´é problema.
Comunque grazie lo stesso,
Giuseppe.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo