Domanda:
Aiuto in C++, come aprire un sito internet e fare delle cose ?
2012-05-30 11:15:01 UTC
Ciao a tutti, allora, io vorrei fare un programmino molto facile, non complesso dove semplicemente apro un link di un sito internet e seleziono un'opzione tra tante nel sito stesso e clicco un tasto.
In poche parole: Aprirlo - Selezionare una cosa sul sito - Cliccare un tasto sul sito.
Come si fa? Se potete mi postate il codice, se no ditemi le librerie che devo usare o il procedimento, spero mi siate d'aiuto !!!!
Sei risposte:
Sergio
2012-05-30 12:15:46 UTC
Aprire una pagina è semplice - con la funzione system()

puoi inserire tra parentesi del testo che verrà eseguito nella riga di comando (sarà qualcosa come: cambia percorso nella cartella ove risiede il browser, aprilo con argomento (questo è supportato da molti browser).

Ci sono altri metodi... questo è abbastanza semplice.

Purtroppo apre semplicemente il browser alla pagina web. Per interagirvi occorre conoscere come funziona il browser in questione.
Ax
2012-05-30 15:53:44 UTC
Bhe in c++ scaricare una pagina web non è cosa da poco (A meno di non trovare qualche semplice libreria già fatta), comunicare in programmazione non è semplice ma nemmeno impossibile.



Quando si fa un lavoro come questo si inizia solamente studiando l'interfaccia con la quale si vuole comunicare, Hai letto il sorgente della pagina web? (Se conosci l'HTML) è in un form vecchio stile o qualcosa di più complesso?

Se è un form e trovi il nome della variabile associata alla scelta (Magari anche con method=GET) dovresti poter eseguire la scelta semplicemente mettendo dopo il nome della pagina (O della pagina target del form) pagina?variabile=valore (Come vedi nell'indirizzo di questa stessa pagina ;D).

Comunque per fare questo lavoro dovresti masticare un po' di HTML o impararlo per l'occasione (è banale se comparato al c++). Se è già in flash o c'è un po' di javascript in più potrebbe essere un lavoraccio. Dipende tutto da che scelta e che bottone è... Ci vuole un po' di fantasia!



Dopo aver fatto questo puoi pensare come fare il programma. Poi se sei su linux potresti cavartela con un bash script (o c++ exec*) e wget, su windows con un file .bat (o la funzione WinExec) e wget.

Wget supporta mi pare sia get che post con gli appositi parametri, leggiti il manuale perchè è molto versatile.

Ho trovato anche una libreria (Anche se è più C che c++) dagli un'occhiata, magari puoi trovare una soluzione più elegante...
Tizio 008
2012-05-31 12:04:07 UTC
"programma molto facile"? andrebbe fatta prima un po' di chiarezza: chiediti che vuol dire "aprire un link"...dietro il semplicissimo gesto di cliccare su un link, o scriverlo nella barra indirizzi di un browser, c'è ... tutto l'impegno che c'è dietro la realizzazione di un browser per l'appunto... E' anche non chiarissimo cosa vuoi: la "simulazione" di quelle azioni o solo il loro effetto?

Interagire con un server http "saltando" tutti i fronzoli di un browser è fattibile, si fa comunemente ma farlo non è banale. Risolto il problema non triviale di contattare un server http e prelevare i dati che manda (fattibile p.es. usando la libreria cURL), si tratta di interpretare questi dati. Se si tratta di una "pagina" nel senso classico, questi dati saranno un "testo" nel formato HTML... e qui, si apre un'altra grande difficoltà: "interpretare" l'HTML... se lo scopo è identificare un link con delle caratteristiche particolari, non è necessario fare un parser vero e proprio... se il link che interessa è statico, è pure inutile però prendere la pagina di partenza: usa direttamente il link in cURL; se il tasto è legato a un form, dovrai "comporre" la richiesta nella modalità del form (get/post) e "riempire" i valori che si aspetta (i campi del form)... per capire quali sono, dovrai analizzare "a mano" l'html di partenza. Se "il tasto" (un termine improprio, che denota una interfaccia verso qualcosa: l'importante è sapere verso cosa) è legato a un javascript... ti tocca capire cosa fa questo javascript... può essere triviale così come estremamente complicato. Se ci sono di mezzo cookie e autenticazioni, dovrai gestire anche queste... cURL permette di gestire queste cose (ma non il javascript per il quale devi di fatto "interpretare" la pagina ed eseguirne il codice)...

L'automazione dell'interazione con pagine web si fa più facilmente usando altri linguaggi di programmazione per i quali esistono moduli che facilitano la scrittura di spider e affini. Python e Perl hanno p.es. Mechanize. Con pagine "moderne" (come p.es. facebook o webapp che usano javascript pesantemente) quel che vuoi fare potrebbe essere estremamente difficile a meno di non "ricavare" come l'interazione è realizzata — o a meno che non ci sia una API esposta dal sito.

Tutto ciò è comunque "diverso" dall'imitazione "grafica" delle azioni che l'utente fa per interagire, tramite il browser, con il server che ha servito la pagina: non c'è un vero clic... di fatto quel che devi fare è implementare un client http che "sappia" gestire tutto quell'insieme di specifiche delle tecnologie web che ti servono per raggiungere lo scopo. Questo è talvolta semplice, talvolta "impossibile" senza in pratica riscrivere un browser.

Nel caso estremo in cui ti dovesse servire javascript, aggiungo anche link spidermonkey... poi buona fortuna ad implementare gli oggetti DOM che un javascript eseguito in una pagina web si aspetta... Naturalmente la via migliore è "focalizzare" sull'obiettivo e fare qualcosa di estremamente mirato.
2012-05-30 11:26:16 UTC
R3F3
?
2012-05-30 11:17:36 UTC
cerca tutorial su youtube che riuscirai a capire di piu :D

ciao
Angelo
2012-05-30 11:17:37 UTC
Allora, il cplusplus non c'entra nnt, per un sito internet ci vuole l'html e il flash, vediti delle videoguide, se non sei un programmatore apriti un sito tipo wordpress, miraccomando 10 punti


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...