VBA in Excel - Premere una freccetta in una pagina web

Anonimo
2013-09-27T11:33:20+00:00

Salve a tutti ,

sono di nuovo alle prese con un problema di data scraping e questa volta sembra davvero non esserci via d'uscita sulla base delle mie conoscenze. Provo a spiegare il problema brevemente:

L'immagine sopra viene da un sito web (purtroppo con accesso riservato, di cui quindi non posso fornire un link). Quello che ho bisogno di fare e' scorrere le pagine per ottenere i vari dati contenuti all'interno delle stesse. I metodi per muoversi all'interno delle pagine sono due:

  1. Inserire il numero di pagina nella casella che attualmente contiene 1, quindi premere "Enter" sulla tastiera;
  2. Cliccare la freccetta grigia con direzione destra.

Di seguito scrivo quello che ho provato a fare, e quali sono i punti in cui mi blocco.

A) Ho scritto un codice che anzitutto ottiene il "54" (numero totale di osservazion). A quel punto, divido questo numero per 25 (elementi contenuti in ogni pagina) e dunque chiedo di inserire i numeri da 1 a x nella casella. Questo funziona, ma purtroppo non riesco a cliccare "Enter" sulla tastiera in modo automatico per inserire il valore. Ecco l'HTML della casella:

Domanda: come posso fare ad utilizzare una sorta di comando .submit per quel numero? Purtroppo questo e' l'unico HTML che ho, non c'e' alcuna istruzione OnClick Javascript (almeno apparentemente).

B) Ho scritto un codice che clicca sulle immagini. In particolare, questo prima ottiene tutti gli elementi che hanno come Tag Name "img" e dopodiche' vi scorre attraverso cliccando quella corretta. Di seguito l'HTML della freccetta (immagine):

Domanda: Dal momento che l'unico elemento di riconoscimento dell'immagine sembra essere "src", come faccio a scrivere un'istruzione del tipo

If Immagine.Src = "/bi/images/icons/range_right_on.png" Then

Immagine.Click

End If

Grazie in anticipo a tutti!

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-09-27T14:16:52+00:00

Dopo ore passate a smanettare, sono finalmente riuscito a trovare una soluzione :) La posto qui nel caso possa mai servire a qualcuno: 

Come cliccare un'immagine su una pagina web:


  1. Integrare il riferimento "Microsoft Visual Studio .NET VB and C# Project Model";
  2. Impostare il codice come segue:

Set InsiemeDiImmagini = appIE.document.getElementsByTagName("img")

For Each Immagine In InsiemeDiImmagini

If Immagine.hasAttribute("src") And Immagine.getAttribute("src") = "quello_che_e" Then

Immagine.Click

Exit For

End If

Next Immagine


*nota: appIE e' un'application Internet Explorer creata come


Set getIE = CreateObject("internetexplorer.application")

Set appIE = getIE

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-09-27T13:07:49+00:00

    https://.../page/1

    https://.../page/2

    sarebbe facile, no? ;)

    Andrea.

    Sarebbe facile, si! Ma purtroppo il contenitore dei dati e' una sorta di pop-up che sale richiamato da un javascript (sul link che io clicco, nell'inner HTML, sta scritto un comando Javascrip "OnClick..."). 

    Non so davvero come fare, le sto provando tutte :/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-09-27T12:51:20+00:00

    ...

    Domanda: come posso fare ad utilizzare una sorta di comando .submit per quel numero? Purtroppo questo e' l'unico HTML che ho, non c'e' alcuna istruzione OnClick Javascript (almeno apparentemente).

    B) Ho scritto un codice che clicca sulle immagini. In particolare, questo prima ottiene tutti gli elementi che hanno come Tag Name "img" e dopodiche' vi scorre attraverso cliccando quella corretta. Di seguito l'HTML della freccetta (immagine):

    Domanda: Dal momento che l'unico elemento di riconoscimento dell'immagine sembra essere "src", come faccio a scrivere un'istruzione del tipo

    If Immagine.Src = "/bi/images/icons/range_right_on.png" Then

    Immagine.Click

    End If

    Grazie in anticipo a tutti!

    Ciao Matteo,

    se, per caso, l'URL delle varie pagine fosse qualcosa del tipo:

    https://.../page/1

    https://.../page/2

    sarebbe facile, no? ;)

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento