Consiglio sviluppo programma e linguaggio da utilizzare

Bjt083

Nuovo Utente
6
0
Salve a tutti,


avrei bisogno del vostro supporto, se possibile.
Vi spiego nel dettaglio quello che vorrei fare, poiché vorrei sfruttare un'idea che mi è venuta per un manageriale di calcio online per imparare, nel tempo libero, qualche nuovo linguaggio di programmazione. Sono un Ingegnere Elettronico, ed ho basi universitarie di C. La programmazione mi appassiona, e non ho assolutamente fretta di creare questa "applicazione".


Nello specifico, ciò che vorrei creare è un programma che mi permetta di effettuare alcune manipolazioni e calcoli di dati presenti su pagine web di questo sito: Manageriale di Calcio Online . Per esempio, dopo il login, il primo valore da leggere è evidenziato in questo screen:

http://img221.imageshack.us/img221/9320/snag0000.jpg

Il secondo, invece, è possibile leggerlo passando con il muose sul nome del giocatore (http://img546.imageshack.us/img546/7050/snag0001p.jpg ) o aprendo un'altra pagina del browser.
Il risultato sarà dato dal calcolo di una equazione con questi due valori all'interno.


Leggendo sul web dopo alcune ricerche, ho inizialmente capito che dovrei utilizzare un linguaggio tipo javascript. Ma in che modo effettuo le richieste di dati sul sito web sopraindicato? Devo imparare qualche altro linguaggio di programmazione o basta soltanto il java?


Grazie mille per qualsiasi tipo di supporto mi venga dato.


;-)
ciao.gif
 

Tinwor

Utente Attivo
932
143
Con javascript non puoi prendere dati da altri siti(è tecnicamente impossibile). Per fare ciò che hai chiesto dovresti orientarti alla programmazione lato server: PHP, e ASP.Net sono i due linguaggi più usati. Poi ce ne sono molti altri come ad esempio Node.js ma dal momento che arrivi da C direi che PHP è il più adatto(anche ASP.Net ma con C# e non VB.Net)
 

GasdOne

Nuovo Utente
35
9
In realtà per quello che vuoi fare non serve minimamente programmazione lato server e quindi PHP e ASP.Net.

Piuttosto serve un normalissimo programma che acceda come client al sito che ti interessa, ne esegua il parsing per ricavare i dati utili e li elabori per quello che vuoi fare. Anche javascript ha poco/nessun senso in questo contesto. In pratica ciò che devi fare è semplicemente connetterti alla pagina che ti interessa (e per questo praticamente tutti i linguaggi forniscono le opportune librerie), riceverla (ricevi uno stream che puoi comporre in un file html) e quindi analizzarla per estrarre i dati che ti interessano. Più che sul linguaggio da utilizzare dovresti focalizzarti sui vari protocolli che devi saper gestire per creare un programma del genere, in particolare http (tcp) e html e in generale le socket. Comunque java (che non è javascript) è semplice, simile al C e ha ottime librerie di alto livello per gestire connessioni di questo tipo quindi te lo consiglio. Anche C, C++ o C# sono linguaggio che puoi facilmente usare. Puoi usare sostanzialmente qualsiasi linguaggio per un programma di questo tipo.
 
  • Mi piace
Reazioni: Bjt083

Tinwor

Utente Attivo
932
143
Evidentemente non sai di cosa si sta parlando ;)
Tu faresti un programma che parserizza la pagina e poi crea una pagina HTML statica? Le tecnologie ATO server sono state create per evitare questo problema: cin PHP e ASP.NET è possibile anche prendere dati da pagina esterne e poi metterli in modo dinamico all' interno della pagina. Il vantaggio? Si hanno dati sempre aggiornati senza dover aspettare che il programma ricarichi la pagina.
Non dar fiato alle trombe se non te ne intendi
 
  • Mi piace
Reazioni: Bjt083

GasdOne

Nuovo Utente
35
9
No sei tu che non hai letto la richiesta.
Nello specifico, ciò che vorrei creare è un programma che mi permetta di effettuare alcune manipolazioni e calcoli di dati presenti su pagine web di questo sito: Manageriale di Calcio Online . Per esempio, dopo il login, il primo valore da leggere è evidenziato in questo screen:
Non ha parlato di creazione di un sito o di pagine html nè statiche nè dinamiche ma solo di elaborazione di dati già presenti su un sito web. Per il resto, ciò che hai detto è decisamente sbagliato/confuso, PHP e ASP.NET sono l'approccio più utilizzato per la creazione di pagine web dinamiche ma non l'unico e assolutamente non il migliore, basti pensare che Twitter è scritto principalmente in Ruby e Dropbox principalmente in Python.
Se la richiesta era creare pagine web dinamiche basandosi su elaborazioni di altri siti web sicuramente l'approccio più semplice è partire da PHP che è facile da imparare e ha una sintassi simile al C (anche se per il resto è molto diverso nel funzionamento), io consiglio di lasciare perdere ASP.

Per il resto attaccare su un forum le competenze di qualcuno senza conoscerlo qualifica immediatamente la persona che lo fa (e forse le sue competenze?) quindi qui chiudo, se l'OP ha domande specifiche può farle perchè la richiesta era molto vaga.
 

Tinwor

Utente Attivo
932
143
GasdOne scusa se ti ho risposto male solo che sono parecchio occupato ultimamente. Hai ragione ho solamente detto i due linguaggi che, a mio avviso, sono i più semplici da imparare e utilizzare. Sono membro attivo nella comunità di RoR e Django. Sviluppo anche molte restfull API con Node.js e quindi ho optato per qualcosa che a mio avviso si avvicina il più possibile ad C e non è troppo complicato da imparare.
Scusa ancora
 
  • Mi piace
Reazioni: Bjt083

fredperry

Nuovo Utente
18
6
Dal mio punto di vista il problema più grosso è la possibilità che sulla pagina ci sia codice javascript che la modifica o ancora peggio che carichi i dati tramite chiamate ajax.
In questo caso il parsing della pagina html risulta inutile, in quanto i dati effettivi verrebbero caricati tramite script javascript.
 

Bjt083

Nuovo Utente
6
0
La vostra conversazione, mi sta lentamente chiarendo alcuni dubbi che avevo. Ho evitato di scrivere prima per evitare errori banali. Sarei orientato a creare questa applicazione in C#, imparando da zero questo linguaggio di programmazione. Ciò che mi preoccupa ancora è il modo in cui andare a beccare quel determinato dato in quella determinata pagina web. Su chrome, tasto destro->Ispeziona elemento, potrebbe essermi di aiuto, giusto? :-)
 

fredperry

Nuovo Utente
18
6
per C# non so, però per java esistono molte librerie open source che ti possono aiutare. Nel caso specifico esiste l'Apache HTTP Client che ti permette di effettuare chiamate http e quindi recuperare la pagina, una volta recuperata la pagina puoi "ripulirla" con JTidy e a questo punto parsarla in un documeto dom, in questo modo avrai l'intera pagina su un oggetto tramite il quale recuperare i dati che ti interessano.
Tutto questo può funzionare solo se conosci i tag della pagina sui quali andare a prendere i dati e soprattutto se la pagina non utilizza javascript per il caricamento di porzioni della pagina.
 
  • Mi piace
Reazioni: Bjt083

Bjt083

Nuovo Utente
6
0
Ciao Fredperry,
grazie per la risposta. Come faccio a verificare se posso essere a conoscenza dei "tag" di cui mi parli sopra?
 

fredperry

Nuovo Utente
18
6
come tag intendo l'elemento html della pagina che contiene il valore che ti interessa, cioè dovresti vedere il codice html della pagina e capire in quale elemento è contenuto il dato che ti interessa e se tale elemento può essere identificato univocamente da codice.
Per esempio se ho una pagina html tipo questa:

Codice:
<table>[INDENT]<tr>[/INDENT]
[INDENT=2]<td>[/INDENT]
[INDENT=3]<div id="id1">
Primo Contenuto
</div>[/INDENT]
[INDENT=2]</td>
<td>
[INDENT]<div id="id2">
Secondo Contenuto
</div>[/INDENT]
</td>
[/INDENT]
[INDENT]</tr>[/INDENT]
[INDENT][/INDENT]
</table>
so che posso recuperare l'elemento del mio documento DOM invocando il metodo getElementById
Esempio
Codice:
[INDENT]
String paginaHtmlString="<contenuto della pagina>";[/INDENT]
[INDENT]DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  [/INDENT]
[INDENT]DocumentBuilder builder;  [/INDENT]
[INDENT]try{  [/INDENT]
[INDENT]        builder = factory.newDocumentBuilder();  [/INDENT]
[INDENT]        Document paginaHtml= builder.parse( new InputSource( new StringReader( paginaHtmlString) )); 
[/INDENT]
[INDENT=2]Element div1=paginaHtml.getElementById("id1");
String contenuto=div1.getTextContent();[/INDENT]
[INDENT]} catch (Exception e) {  [/INDENT]
[INDENT]        e.printStackTrace();  [/INDENT]
[INDENT] } [/INDENT]
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!