• Welcome to LusoRobótica - Robótica em Português.
 

Retirar informação de site atraves de ethernet shield

Started by Wolfz, 05 de July de 2012, 23:02

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Wolfz

Ok... Antes de mais obrigado GnGz e desculpa ser tão vira casacas :-X, mas o que eu gostava mesmo de fazer era retirar muitas das informações que estão neste site (http://www.horadomundo.com/mundo/ciudad/openCity.do?nome=Braga&city_id=1890040) :S
Quando comecei era apenas as horas que me interessvam mas agora era a temperatura e mais umas coisas. 

Se me poderes ajudar obrigado    :P

GnGz

Se esse site tivesse uma api, era mais fácil... Mas porque não arranjas os teus sensores e um rtc?

Cumps :D

Wolfz

Não há maneira de criar uma pagina html, que faça a recolha dos dados do site (como podemos fazer como visual basic), alojar esse html no SD e depois recolher os dados dele para variáveis.

Ps: Os meus conhecimentos sobre isto não são muitos por isso não sei se estou a dizer alguma barbaridade xD

Cumps ;-)

GnGz

Poder recolher do site até podes e até podes fazer directamente pelo arduino, mas se esse site tivesse uma api, fazias parsing e mandavas só o necessário para o Arduino. E assim ficava automatizado. Mas se quiseres como tu disseste também é possivel , mas não é automático...

Cumprimentos,

Wolfz


GnGz

Pegas numa Linguagem de Programação, comunicas com o site e tiras o código, fazes parsing dos dados que necessitas, depois escreves um ficheiro na localização do cartão sd e gravas...
Tens de dizer qual a language que te dás melhor...

Cumprimentos,

Wolfz

Txiii... Bicho de 7 cabeças  :-X

O que costumo de programar é arduino. Logo a linguagem é C.

Obrigado por mr estares a ajudar =)

GnGz

Pesquisa no google como podes obter o código html de um website ou coisa parecida... O Google é o teu melhor amigo. Vai postando aqui as coisas de forma ao pessoal ajudar-te.

http://curl.haxx.se/libcurl/c/example.html

amando96

#23
E se tentares encontrar algo que te dê a mesma informação em Json ou XML?

GnGz

Pois até é melhor, não me lembrei das librarys para fazer parsing ao json e ao xml...
Sempre tens o Wunderground que têm uma api e que te dá os dados em XML e JSON... Não têm a hora , mas para isso arranjas um RTC e sincronizas a hora...

Wunderground para Braga: http://www.wunderground.com/cgi-bin/findweather/hdfForecast?query=braga
Wunderground API: http://www.wunderground.com/weather/api

A API tem um plano gratuito que te permite retirares os dados 10 vezes por minuto e 500 vezes por dia.

Wolfz

O RTC é aquele "componente" para saber a hora certo? é que por mais barato que isso seja não estava em conta de gastar mais dinheiro :S


Wolfz

=S eu quando "acedo ao site" recebo isto:

QuoteHTTP/1.1 404 Not Found
    Date: Fri, 06 Jul 2012 17:10:04 GMT
    Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    Last-Modified: Fri, 07 Jan 2005 23:09:11 GMT
    ETag: "a8002c-2a6-3ed1e4e7193c0"
    Accept-Ranges: bytes
    Content-Length: 678
    Vary: Accept-Encoding,User-Agent
    Connection: close
    Content-Type: text/html

    <HTML><HEAD><TITLE> Wait ... </TITLE>
    <META HTTP-EQUIV="refresh" CONTENT="0;URL=/">
    </HEAD><BODY><FONT FACE="verdana,arial" SIZE=2>
    <!-- This page doensn't exist anymore -->
    Click  <A HREF="/">here[/url] to continue ...
    </FONT>
    <!-- adding to get to 512 bytes 000000000000000000000000000000000000000000000000 -->
    <!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
    <!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
    <!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
    <!-- 000000000000000000000000000000000000000000000000000000000000000000000000000 -->
    </BODY></HTML>

    disconnecting.


não da para tirar a hora/ data por aqui? ("Date: Fri, 06 Jul 2012 17:10:04 GMT")

GnGz

É pelo tal software em c ou é codigo do arduino? Posta o código.

Wolfz

Quote#include <Ethernet.h>
#include <SPI.h>


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 199 };
byte server[] = { 69, 73, 153, 37 };

EthernetClient client;

void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);

  delay(1000);

  Serial.println("connecting...");

  if (client.connect(server, 80)) {
    Serial.println("connected");
    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();
  } else {
    Serial.println("connection failed");
  }
}

void loop()
{
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}