Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-05-06 21:01:06 goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

goldman sachs dans mon processing



bonjour,

je bosse sur un projet processing/arduino.
arduino ok ça je connais.
processing vachement moins
pour le moment j ai récupéré un flux rss de météo (ben avec comme variable la température mes moteurs ne s'affolent pas trop wink )
j 'aimerai récupéré un flux plus rapide tel que les flux boursiers ex :
http://finance.yahoo.com/q;_ylt=Aodjo50 … 2&s=GS

mais je ne vois pas comment faire pour jouer avec les flux de yahoo finance
un petit tuto m'sieurs m'dames ...
a+

Hors ligne

 

#2 2014-05-06 22:33:53 Re : goldman sachs dans mon processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: goldman sachs dans mon processing



Un possibilité est de décortiquer la page html pour extraire la balise qui te convient :

String[] lignes;
String indice;

void setup() {
  noLoop();
}

void draw() {
  lignes = loadStrings("http://finance.yahoo.com/q;_ylt=Aodjo50Oeevvu0HbU4Vy8Lonv7gF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3VoM19maW5hbmNlX3dlYl9ncwRmcjIDc2EtZ3AEZ3ByaWQDBG5fZ3BzAzEwBG9yaWdpbgNmaW5hbmNlLnlhaG9vLmNvbQRwb3MDMQRwcXN0cgMEcXVlcnkDR1MsBHNhYwMxBHNhbwMx?p=http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3DGS%26ql%3D0&type=2button&fr=uh3_finance_web_gs&uhb=uhb2&s=GS"); 
  for (int i = 0; i < lignes.length; i++) {
    if (lignes[i].contains("yfs_l84_gs")) { 
      indice = lignes[i].substring(lignes[i].indexOf("yfs_l84_gs") + 12, lignes[i].indexOf("</span></span>"));
    }
  }
  println("Indice GS : " + indice);
}

Hors ligne

 

#3 2014-05-06 23:36:53 Re : goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: goldman sachs dans mon processing



merci pour ton retour.
c'est trés éléguant ce script qui parcourt seul la page (je ne montrerai pas le mien avec mes testes météorologique :s )

tu peux me faire une petite explication sur cette partie de ton script...
pourquoi"+12" et  ceci "lignes[i].indexOf("</span></span>")" a quelle fonction?

sinon chez moi ça ne marche pas :

java.net.UnknownHostException: finance.yahoo.com
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at sun.net.NetworkClient.doConnect(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.<init>(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at processing.core.PApplet.createInputRaw(PApplet.java:7100)
	at processing.core.PApplet.createInput(PApplet.java:7068)
	at processing.core.PApplet.loadStrings(PApplet.java:7405)
	at sketch_140506a.draw(sketch_140506a.java:25)
	at processing.core.PApplet.handleDraw(PApplet.java:2306)
	at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:237)
	at processing.core.PApplet.run(PApplet.java:2177)
	at java.lang.Thread.run(Unknown Source)
The file "http://finance.yahoo.com/q;_ylt=Aodjo50Oeevvu0HbU4Vy8Lonv7gF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3VoM19maW5hbmNlX3dlYl9ncwRmcjIDc2EtZ3AEZ3ByaWQDBG5fZ3BzAzEwBG9yaWdpbgNmaW5hbmNlLnlhaG9vLmNvbQRwb3MDMQRwcXN0cgMEcXVlcnkDR1MsBHNhYwMxBHNhbwMx?p=http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3DGS%26ql%3D0&type=2button&fr=uh3_finance_web_gs&uhb=uhb2&s=GS" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.

a+

Dernière modification par superdz (2014-05-06 23:45:51)

Hors ligne

 

#4 2014-05-07 07:32:07 Re : goldman sachs dans mon processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: goldman sachs dans mon processing



En fait je cherche dans la page une balise précise :
<span id="yfs_l84_gs">154.54</span>
indexOf("yfs_l84_gs") me donne l'emplacement de cette balise, c'est à dire l'emplacement du premier caractère de la chaine, c'est-à-dire la position du caractère 'y'. Comme je veux le premier chiffre son emplacement est l'emplacement de 'y' + 12.

Comme j'ai voulu être rapide, j'ai été imprécis, j'aurais du écrire ceci :

      int pos = lignes[i].indexOf("yfs_l84_gs");
      indice = lignes[i].substring(pos + 12, lignes[i].indexOf("</span>", pos));

La deuxième partie donne la position du premier "</span"> après l'indice recherché.
Ainsi, nous pouvons extraire l'indice sou forme de chaîne de caractère.
http://processing.org/reference/String_indexOf_.html

L'erreur indique une URL inaccessible, pourtant, c'est l'adresse que tu nous a fournie.

Hors ligne

 

#5 2014-05-08 22:20:32 Re : goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: goldman sachs dans mon processing



merci Mushussu

j ai pas eu le temps de remettre le nez dedans.
te dis quoi plus tard
a+

Hors ligne

 

#6 2014-05-12 16:55:59 Re : goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: goldman sachs dans mon processing



ok mon pb ne venait pas de mon code de mon PC:P reste a savoir quoi... je vais pas lancer un nouveau post mais si quelqu'un a une idéewink
donc voici le code pour processing2

String lignes[];
String indice;

void setup() {
size(600, 360);
  

}

void draw() {
  background(255);
  fill(0);
  lignes = loadStrings("http://finance.yahoo.com/q;_ylt=Aodjo50Oeevvu0HbU4Vy8Lonv7gF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3VoM19maW5hbmNlX3dlYl9ncwRmcjIDc2EtZ3AEZ3ByaWQDBG5fZ3BzAzEwBG9yaWdpbgNmaW5hbmNlLnlhaG9vLmNvbQRwb3MDMQRwcXN0cgMEcXVlcnkDR1MsBHNhYwMxBHNhbwMx?p=http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3DGS%26ql%3D0&type=2button&fr=uh3_finance_web_gs&uhb=uhb2&s=GS"); 
  for (int i = 0; i < lignes.length; i++) {
    if (lignes[i].contains("yfs_l84_gs")) { 
     indice = lignes[i].substring(lignes[i].indexOf("yfs_l84_gs") + 12, lignes[i].indexOf("</span></span>"));
    }
  }
  text("Indice GS : " + indice, width*0.15, height*0.66);
}

merci encore Mushussu pour ton aide

Dernière modification par superdz (2014-05-12 16:57:01)

Hors ligne

 

#7 2014-05-12 20:40:53 Re : goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: goldman sachs dans mon processing



Ah ca marche ...
bon faudra tester sur la durée donc au final voici le code processing2+librairie arduino

import processing.serial.*;
import cc.arduino.*;

String lignes[];
String indice;
float  oldIndice =0;
int  pos = 0;
float  newIndice;

Arduino arduino;
int ledPin = 13;

void setup()
{

  println(Arduino.list());
  arduino = new Arduino(this, Arduino.list()[1], 57600);//changer au besoin : [1]
  arduino.pinMode(ledPin, Arduino.OUTPUT);
 
 lignes = loadStrings("http://finance.yahoo.com/q;_ylt=Aodjo50Oeevvu0HbU4Vy8Lonv7gF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3VoM19maW5hbmNlX3dlYl9ncwRmcjIDc2EtZ3AEZ3ByaWQDBG5fZ3BzAzEwBG9yaWdpbgNmaW5hbmNlLnlhaG9vLmNvbQRwb3MDMQRwcXN0cgMEcXVlcnkDR1MsBHNhYwMxBHNhbwMx?p=http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3DGS%26ql%3D0&type=2button&fr=uh3_finance_web_gs&uhb=uhb2&s=GS"); 
  
  for (int i = 0; i < lignes.length; i++) {
    if (lignes[i].contains("yfs_l84_gs")) { 
    pos = i;
    println(pos);}}

}

void draw()
{

 lignes = loadStrings("http://finance.yahoo.com/q;_ylt=Aodjo50Oeevvu0HbU4Vy8Lonv7gF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA3VoM19maW5hbmNlX3dlYl9ncwRmcjIDc2EtZ3AEZ3ByaWQDBG5fZ3BzAzEwBG9yaWdpbgNmaW5hbmNlLnlhaG9vLmNvbQRwb3MDMQRwcXN0cgMEcXVlcnkDR1MsBHNhYwMxBHNhbwMx?p=http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3DGS%26ql%3D0&type=2button&fr=uh3_finance_web_gs&uhb=uhb2&s=GS"); 
 indice = lignes[pos].substring(lignes[pos].indexOf("yfs_l84_gs") + 12, lignes[pos].indexOf("</span></span>"));
   

 /* text("Indice GS : " + indice, width*0.15, height*0.66);
  text("oldIndice GS : " + oldIndice, width*0.15, height*0.70);
  */
println("Indice GS : " + indice+" / oldIndice GS : " + oldIndice);
 newIndice = float(indice);
println("int"+indice);
 if (oldIndice == newIndice){
     delay(1000);
  oldIndice = newIndice;}
 else{
    println("---");
   arduino.digitalWrite(ledPin, Arduino.HIGH);
  delay(10);
  arduino.digitalWrite(ledPin, Arduino.LOW);
  oldIndice = newIndice;}
  
}

Hors ligne

 

#8 2014-06-26 01:12:08 Re : goldman sachs dans mon processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: goldman sachs dans mon processing



salut,

il faudrait changer le titre de ce post par arduino et golman sachs...
en effet je viens de faire l'achat d'unethernet shield afin de me libérer  de mon pc et surtout pour m'amuser.
enfin voilà
je veux passer de mon code processing voir ci-dessus à celui ci-dessous (arduino) mais ça ne fonctionne pas ... :s
un coup de main svp


   

Dernière modification par superdz (2014-06-26 01:13:52)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024