Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-04-2009, 17:18   #1
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
[c++]prendere dati dal web!

ciao a tutti!

io volevo creare un programma capace di raccogliere dei dati da alcune pagine web dando in imput al programma stesso l'indirizzo di queste pagine...

esiste un modo per fare ciò?

grazie mille a tutti !
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 17:58   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ciao a tutti!

io volevo creare un programma capace di raccogliere dei dati da alcune pagine web dando in imput al programma stesso l'indirizzo di queste pagine...

esiste un modo per fare ciò?

grazie mille a tutti !
sicuro: devi usare Windows Internet, di cui trovi la documentazione qui:
http://msdn.microsoft.com/en-us/libr...31(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...30(VS.85).aspx
in particolare qui:
http://msdn.microsoft.com/en-us/libr...22(VS.85).aspx
non é molto difficile.

se invece vuoi scrivere un sorgente portabile che funzioni anche su Linux, ahité e che Dio ti aiuti: devi usare l'interfaccia BSD dei sockets (che contiene porcate a tratti stupefacenti) ed imparare le basi del protocollo HTTP; se poi devi pure passare per un proxy allora tanti saluti.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 18:03   #3
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
Quote:
Originariamente inviato da 71104 Guarda i messaggi
sicuro: devi usare Windows Internet, di cui trovi la documentazione qui:
http://msdn.microsoft.com/en-us/libr...31(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...30(VS.85).aspx
in particolare qui:
http://msdn.microsoft.com/en-us/libr...22(VS.85).aspx
non é molto difficile.

se invece vuoi scrivere un sorgente portabile che funzioni anche su Linux, ahité e che Dio ti aiuti: devi usare l'interfaccia BSD dei sockets (che contiene porcate a tratti stupefacenti) ed imparare le basi del protocollo HTTP; se poi devi pure passare per un proxy allora tanti saluti.
grazie mille!
no io non devo passare ne per proxy ne per linux ne per niente!
ora mi leggo tutto!
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 18:07   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
a proposito, se per "raccogliere dati da alcune pagine web" intendevi dire che devi fare il parsing dell'HTML e leggere il contenuto di alcuni tag allora puoi farti aiutare dall'implementazione Microsoft del DOM:
http://msdn.microsoft.com/en-us/libr...87(VS.85).aspx
solo che questa é una cosa giá piu difficile perché richiede una minima conoscenza di COM, il layer di interoperabilitá che permette a quello e a molti altri set di API di essere usati virtualmente da qualunque linguaggio di programmazione.
per una vita agevole in un ambiente COM in C++, ATL é d'obbligo, solo che non lo danno piu con l'SDK; dovresti scaricare il vecchio Platform SDK, che ancora contiene ATL ed MFC e che si trova qui:
http://www.microsoft.com/downloads/d...6-9da2b03d9b92
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 18:15   #5
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
Quote:
Originariamente inviato da 71104 Guarda i messaggi
a proposito, se per "raccogliere dati da alcune pagine web" intendevi dire che devi fare il parsing dell'HTML e leggere il contenuto di alcuni tag allora puoi farti aiutare dall'implementazione Microsoft del DOM:
http://msdn.microsoft.com/en-us/libr...87(VS.85).aspx
solo che questa é una cosa giá piu difficile perché richiede una minima conoscenza di COM, il layer di interoperabilitá che permette a quello e a molti altri set di API di essere usati virtualmente da qualunque linguaggio di programmazione.
per una vita agevole in un ambiente COM in C++, ATL é d'obbligo, solo che non lo danno piu con l'SDK; dovresti scaricare il vecchio Platform SDK, che ancora contiene ATL ed MFC e che si trova qui:
http://www.microsoft.com/downloads/d...6-9da2b03d9b92
ecco ora inizio a non capire

ti dico cosa vorrei fare di preciso:

si tratta di pagine di un gioco online.
ho pagine come questa: http://www94.hattrick.org/Club/Players/Player.aspx?PlayerID=241160761&BrowseIds=241160761,240825163,240712091,241797788,241617612,241749748,241797858,237809268,235863168,234575276,230123304,240782777,241316416,241797938,241797951,241797964,241797963,241797995,241334685,241023848,241794878,234254045,241621155,241320522,241544552

e io vorrei fare un programma che, dato il link mi prenda un dato qualsiasi...che so il nome del giocatore!

Ultima modifica di moritzplatz : 13-04-2009 alle 18:46.
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 18:37   #6
dupa
Senior Member
 
L'Avatar di dupa
 
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ecco ora inizio a non capire

ti dico cosa vorrei fare di preciso:

si tratta di pagine di un gioco online.
ho pagine come questa: http://www94.hattrick.org/Club/Players/Player.aspx?PlayerID=241160761&BrowseIds=241160761,240825163,240712091,241797788,241617612,241749748,241797858,237809268,235863168,234575276,230123304,240782777,241316416,241797938,241797951,241797964,241797963,241797995,241334685,241023848,241794878,234254045,241621155,241320522,241544552

e io vorrei fare un programma che, dato il link mi prenda un dato qualsiasi...che so il nome del giocatore!
a parte il fatto che con Hattrick devi creare un'applicazione certificata e loro ti danno accesso in qualche modo ai dati..

cmq in Java per parsare pagine web c'è HttpClient
in .NET c'è sicuramente qualcosa di simile..

non vedo perchè scomodar cose di tropp basso livello
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino.
dupa è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 18:46   #7
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
Quote:
Originariamente inviato da dupa Guarda i messaggi
a parte il fatto che con Hattrick devi creare un'applicazione certificata e loro ti danno accesso in qualche modo ai dati..

cmq in Java per parsare pagine web c'è HttpClient
in .NET c'è sicuramente qualcosa di simile..

non vedo perchè scomodar cose di tropp basso livello
si ti danno l'accesso CHPP ... ma ci vogliono anni per ottenerlo...mentre a me serve solo una cosa che data una pagina così prenda un solo numero!
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 21:23   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da 71104 Guarda i messaggi
se invece vuoi scrivere un sorgente portabile che funzioni anche su Linux, ahité e che Dio ti aiuti: devi usare l'interfaccia BSD dei sockets (che contiene porcate a tratti stupefacenti) ed imparare le basi del protocollo HTTP; se poi devi pure passare per un proxy allora tanti saluti.
Quanto sei catastrofista.
Basta usare cUrl
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 22:15   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Quanto sei catastrofista.
Basta usare cUrl
cUrl, come qualunque altra libreria di terze parti, non é magica e non risolve un bel nulla: il problema di portarsi appresso la dipendenza non scompare, se sul tuo computer 10 programmi diversi usano cUrl esistono 10 copie diverse di cUrl. chiaramente questo problema é giá stato risolto 10 anni fa con gli SxS, ma se devi fare un sistema di distribuzione portabile é piu facile dire ai programmatori "tenetevi i sorgenti e linkateli staticamente", e niente SxS.
in generale se il tuo programma deve girare solamente su Windows conviene usare solo roba giá presente in Windows: fare diversamente é stupido, significa solo aumentare la dimensione di download (e magari anche ridurre la qualitá).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 22:50   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ecco ora inizio a non capire

ti dico cosa vorrei fare di preciso:

si tratta di pagine di un gioco online.
ho pagine come questa: giocatore

e io vorrei fare un programma che, dato il link mi prenda un dato qualsiasi...che so il nome del giocatore!
qui c'é uno stralcio di codice che ti spiega come istanziare l'oggetto Document del DOM:
http://msdn.microsoft.com/en-us/libr...87(VS.85).aspx
é un punto d'inizio; per il resto usa ATL. se non hai mai visto in vita tua nulla di COM allora dimenticati questo post, lascia perdere e usa qualche altro sistema
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2009, 22:52   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ah, non é detto che tu debba usare il C++: ad esempio il DOM é molto piu accessibile se usi Windows Script Host, che significa che dovresti scrivere in JScript o in VBScript il tuo programmetto (eliminando in una volta sola un mare di complicazioni).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 14:32   #12
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
siè vero potrei farlo in javascrit!

quindi mi devo studiare questo DOM...ok ora vedo!

grazie!
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 14:46   #13
-Slash
Senior Member
 
L'Avatar di -Slash
 
Iscritto dal: Mar 2006
Messaggi: 2516
Quote:
Originariamente inviato da 71104 Guarda i messaggi
cUrl, come qualunque altra libreria di terze parti, non é magica e non risolve un bel nulla: il problema di portarsi appresso la dipendenza non scompare, se sul tuo computer 10 programmi diversi usano cUrl esistono 10 copie diverse di cUrl. chiaramente questo problema é giá stato risolto 10 anni fa con gli SxS, ma se devi fare un sistema di distribuzione portabile é piu facile dire ai programmatori "tenetevi i sorgenti e linkateli staticamente", e niente SxS.
in generale se il tuo programma deve girare solamente su Windows conviene usare solo roba giá presente in Windows: fare diversamente é stupido, significa solo aumentare la dimensione di download (e magari anche ridurre la qualitá).
Su windows forse, su linux basta installare una sola volta curl. Semplicemente creerai il tuo bel pacchetto con solo il tuo programma, specificando che ha come dipendenza curl. Quando la persona che ha scaricato il programma cliccherà due volte sul pacchetto verrà automaticamente scaricata ed installata curl.

Da quel momento se scarichi un altro programma che usa curl quando fai doppio click sul pacchetto le dipendenze sono soddisfatte, quindi non reinstalla un bel niente, usa curl che è già installato
-Slash è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 16:24   #14
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
ho trovato questa guida sul DOM

http://javascript.html.it/guide/lezi...etto-document/

solo che guardando l'html mi sono scoraggiato....

ma non esiste una funzione che mi prende l'html di una pagina e me lo salva in un file di testo?

poi così potrei lavorarmelo agevolmente in C++
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 22:43   #15
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ma non esiste una funzione che mi prende l'html di una pagina e me lo salva in un file di testo?

poi così potrei lavorarmelo agevolmente in C++
Un banale esempio usando curl:
Codice:
string download;
//array per contenere gli eventuali errori
char errorBuffer[CURL_ERROR_SIZE];
 
//Inizializzazione di CURL
CURL *curl = curl_easy_init();

//Impostazione del buffer per gli errori
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, &errorBuffer[0]);

//Impostazione della url da scaricare  
curl_easy_setopt(curl, CURLOPT_URL, "http://url.da.scaricare");

//caso mai il sito rispondesse con Location impostiamo curl per reindirizzare
//automaticamente
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);

//Ipostazione della funzione di callback richiamata da curl sulla ricezione di dati
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);

//Impostazione del dato da passare alla callback
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &download); 
 
//Non ci interessa l'header http tra i dati letti dalla callback
curl_easy_setopt(curl, CURLOPT_HEADER, 0); 

//Esecuzione dell'operazione
CURLcode result = curl_easy_perform(curl);

if (result != CURLE_OK) //Errore!
    cout << errorBuffer << endl; 
else
{
    //a questo punto in download ci sono i dati correttamente scaricati
    ofstream of("download.html");
    of << download;
}
//Cleanup
curl_easy_cleanup(curl);


//Da qualche parte la callback sarà:
int writer(char *data, size_t size, size_t nmemb, std::string *buffer)  
{  
    //il return di un valore differente da size * nmemb causa l'interruzione del download con segnalazione di errore
    if (!buffer)
        return 0;

    //Accodamento dei dati ricevuti
    buffer->append(data, size * nmemb);  
    return size * nmemb;
}
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 22:57   #16
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
ecco io devo includere curl


#include "curl/curl.h"

dove lo trovo questo file?
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 23:43   #17
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ecco io devo includere curl


#include "curl/curl.h"

dove lo trovo questo file?
Lo trovi all'interno della libreria curl, nella cartella include.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 23:51   #18
moritzplatz
Senior Member
 
Iscritto dal: Jul 2008
Città: roma (monti)
Messaggi: 808
ma non credo ci sia di default questa libreria...
!
moritzplatz è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2009, 23:59   #19
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da moritzplatz Guarda i messaggi
ma non credo ci sia di default questa libreria...
!
Su windows certamente no. Devi scaricarla e compilarla (c'è già la soluzione per Visual Studio).
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 15-04-2009, 00:35   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da -Slash Guarda i messaggi
Su windows forse, su linux basta installare una sola volta curl. Semplicemente creerai il tuo bel pacchetto con solo il tuo programma, specificando che ha come dipendenza curl. Quando la persona che ha scaricato il programma cliccherà due volte sul pacchetto verrà automaticamente scaricata ed installata curl.

Da quel momento se scarichi un altro programma che usa curl quando fai doppio click sul pacchetto le dipendenze sono soddisfatte, quindi non reinstalla un bel niente, usa curl che è già installato
non hai capito niente: leggi tutto quello che hai quotato, non solo la parte che hai messo in grassetto.
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
Sora all'interno di ChatGPT: aumentano g...
L'Ufficio dell'Ispettore Generale ha ana...
Primo contatto con Volvo ES90: ammiragli...
La Cina potrebbe puntare con maggiore de...
Un clamoroso errore strategico: il nuovo...
Cos’è il nuovo cartello del "...
HP: gli attacchi con l'IA puntano su vel...
Acer compie 50 anni e si trasforma: dall...
La rete elettrica USA funziona solo a me...
La Corte Costituzionale albanese: 'Il ba...
Secondo trailer del nuovo anime di Ken i...
La guerra tra Russia e Ucraina arriva co...
KadNap: il botnet che ha infettato 14.00...
Il cloud è sempre più cent...
Lisuan svela la GPU gaming LX 7G106: deb...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v