Condividi:        

[VBA EXCEL] eseguire una ricerca su un sito

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 12/07/10 19:56

Salve.

E' possibile reperire un codice per eseguire delle ricerche nel modulo di ricerca di un sito ?

Non sono ancora in grado di farlo da solo e mi farebbe comodo qualcosa da poter adattare alle mie esigenze.

Ditemi anche solo la funzione che serve e me la vado a studiare.

Grazie mille.
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Sponsor
 

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi Anthony47 » 12/07/10 21:05

Non ho sviluppato niente in merito, ma credo che si debba rintracciare, nel sorgente pagina, il nome della form, poi l' id dell' input da dare; poi si assegna il valore da ricercare al campo (IE.Document.All.Item(NomeCampo)) e si fa la submit della form (IE.Document.Form(nomeForm).Submit)

Per quanto detto all' inizio, tutto questo assolutamente senza impegno.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 12/07/10 22:25

Anthony47 ha scritto:Non ho sviluppato niente in merito, ma credo che si debba rintracciare, nel sorgente pagina, il nome della form, poi l' id dell' input da dare; poi si assegna il valore da ricercare al campo (IE.Document.All.Item(NomeCampo)) e si fa la submit della form (IE.Document.Form(nomeForm).Submit)

Per quanto detto all' inizio, tutto questo assolutamente senza impegno.

Ciao


Ciao, Antony.

La riga che identifica il modulo della ricerca é la seguente:

Codice: Seleziona tutto
<input class=boxlogin name=ricercalibera size="16" maxlength="30" >


mentre il pulsante che avvia la ricerca é questo

Codice: Seleziona tutto
<input type="submit" name="Submit" value="-->" class="boxlogin">


Mi aiuti a capire come identificare ID e Nome della form ?

Codice: Seleziona tutto
Sub navigatore()
Dim desturl As String
desturl = "www.google.it"  ' facciamo finta di dover fare una ricerca su google per esempio
            Call Naviga(desturl)  'chiamo la funzione NAVIGA che mi apre il browser e va all'indirizzo desturl
            objIE.Document.All.Item (netbook)  'mettiamo che voglio cercare la parola NETBOOK
            objIE.Document.Form(ricercalibera).Submit   'il nome "ricercalibera" é giusto ?
            Range("a" & x).Value = objIE.Document.body.innerHTML
End Sub


così com'é il codice mi dà, ovviamente, errore "proprietà o metodo non supportati dall'oggetto".
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 12/07/10 22:40

Aggiungo...

più sopra, nel codice della pagine, c'é:

Codice: Seleziona tutto
   <Form action="/index.asp?p=p" method=post>


ma non c'é ID
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi Anthony47 » 12/07/10 22:51

Come detto non ho nessuna esperienza sull' argomento. Devi quindi cercare in rete la sintassi di proprieta' e metodi che dovresti utilizzare.
A occhio direi che in ogni caso Item(netbook) e' sbagliato:
-perche' li ci va il nome dell' id, non il valore che vuoi fargli assumere
-perche' probabilmente non c' e' nessuna variabile netbook, se si tratta di stringa dovrebbe essere tra virgolette, ma non in quella posizione

Nel sorgente di google.it non trovo nessuna form "ricerca libera", ma comunque c' e' "solo" bisogno di provare e riprovare, e sperare che non facciano aggiornamenti sul sito di partenza.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi Anthony47 » 13/07/10 00:03

Su google viene usato un input field di nome "q" (che si indirizza quindi con .Document.All.Item("q"), e la ricerca si avvia sul click del bottone nominato "btnG" (cioe' con .Document.All.Item("btnG").Click); non quindi al submit della form.

Quindi
Codice: Seleziona tutto
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate "http://www.google.it"
        Do Until .ReadyState = 4: DoEvents: Loop
        .Document.All.Item("q").Value = "Cerca codice html vba site:pc-facile.com"
'        IE.Document.Forms("f").Submit
        .Document.All.Item("btnG").Click
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 13/07/10 07:24

Grazie, Antony.

Sono riuscito a fare quello che mi serviva grazie al tuo codice e l'ho anche capito (miracolo).

Sei sempre un grande !!!

mi sapresti suggerire la riga di comando che mi clicca sul primo link che viene fuori dalla ricerca appena effettuata con il tuo codice ?
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi Anthony47 » 13/07/10 08:59

Hai gli elementi per fare le query e per leggere il codice; adesso basta catturare nel sorgente il primo link utile e usarlo per il ".navigate". Tocca a te spendere tempo per realizzare cio'...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 13/07/10 09:11

Anthony47 ha scritto:Hai gli elementi per fare le query e per leggere il codice; adesso basta catturare nel sorgente il primo link utile e usarlo per il ".navigate". Tocca a te spendere tempo per realizzare cio'...

Ciao


Il punto é proprio questo.

Riesco a navigare
Faccio la ricerca
la pagina mi restituisce l'elemento che voglio
mi prendo il sorgente ( con .innerHTML ) per poter successivamente andarci a prendere dentro il link.

il problema é che mi scarica il sorgente del frame di sinistra che, in realtà, é dove si trova la famosa casella di ricerca in cui, appunto, effettuo la ricerca.

Secondo me devo in qualche modo selezionare il frame di destra, dopo aver fatto la ricerca, in modo da poter prendere la parte di sorgente in cui compare il link che mi interessa.

La cosa strana é che, se faccio a mano il comando HTML da IE, mi dà il codice completo, comprensivo del link che mi serve... invece .innerHTML mi prende solo quel dannato menu di sinistra ...
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 13/07/10 09:43

Ho capito...

Il codice é troppo lungo per essere contenuto tutto quanto in una singola cella.

La mia ulteriore domanda é:

Quando metto il codice in una stringa, il codice c'é tutto ? oppure anche la stringa ha un numero di caratteri limitato ? ovviamente immagino di sì... ma la mia curiosità é sapere se nella stringa il codice ci entra tutto quanto oppure solo una parte come per la cella ... e come faccio a mettere tutto il codice in una o più celle per poi processarle e cercare il link che mi serve ?

Ok... devo impazzire.
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22

Re: [VBA EXCEL] eseguire una ricerca su un sito

Postdi corvo4791 » 13/07/10 10:49

BECCATO !!!

In effetti era quello il problema

La cella può contenere fino a un massimo di 36000 caratteri circa

La stringa invece ne arriva a contenere molti di più. Il mio codice era di circa 95000 caratteri.

Mi é bastato dividere la stringa e metterla in diverse celle.

Poi cerco ciò che mi serve in ognuna delle celle.

Grazie come sempre, Antony.
corvo4791
Utente Junior
 
Post: 72
Iscritto il: 02/07/10 08:22


Torna a Applicazioni Office Windows


Topic correlati a "[VBA EXCEL] eseguire una ricerca su un sito":


Chi c’è in linea

Visitano il forum: Nessuno e 51 ospiti