[c] Pobieranie informacji z internetu

Odpowiedz Nowy wątek
2006-07-21 11:03
0

Dokładnie chodzi mi o łatwe pobranie dajmy na przykład informacji pogodowych z serwisu www.weather.com czy pogoda.onet.pl. Szczególnie interesuje mnie możliwość dostania w odpowiedzi http tych danych, które przejmie struktura...

Pozostało 580 znaków

2006-07-22 13:42
0

Najszybszym rozwiązaniem jest załadowanie strony do IHTMLDocument i pobranie elementu znając jego index.
Właśnie tak to dzisiaj napisałem:

// download
IStream *stream;
URLOpenBlockingStream(_null, url, &stream, 0, _null);
 
// document
IHTMLDocument2 *pDoc;
CoCreateInstance(CLSID_HTMLDocument, _null, CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, &pDoc);
// extra funkcja document.write(stream);
LoadStreamToDocument(pDoc, stream);
 
// kolekcja 
IHTMLElementCollection *coll;
pDoc->get_all(&coll);
 
// temperatura
// znów extra funkcja void* GetItem(IHTMLElementCollection, index, IID)
IHTMLElement *pElem = GetItem(coll, index, _IID_IHTMLElement);
BSTR lpwsz;
pElem->get_innerText(&lpwsz); // ile stopni
 
// image
CImage *pPic = new CImage;
BSTR bstrSrc;
IHTMLImgElement *pImg = GetItem(coll, index, _IID_IHTMLImgElement);
pImg->get_src(&bstrSrc);
// sprawdź czy !_wcsnicmp(bstrSrc, L"about:blank", 11) i eventualnie przesuń wskaźnik o 22 bajty
pPic->LoadFromFileW(bstrSrc+offset);

z image jest trochę kłopotu bo src może mieć na początku "about:blank", a poza tym może to być relatywny path i trzeba dopisać url strony po lewej stronie.

Dla miasta katowice url i indexy znajdziesz w gotowym przykladzie http://www.mytempdir.com/819229

Pozostało 580 znaków

2006-07-23 01:31
0

Bardziej interesowała by mnie jakaś podpowiedz naprowadzająca lub kod w [c], może parser który wyciąga dane z kanału RSS oraz przedstawia dane w postaci przejrzystej tablicy?

Pozostało 580 znaków

2006-07-23 22:18
0

ee mozna to inaczej zrobic
na calym swiecie obowiazuje format depeszy pogodowej ktory sie nazywa METAR, pliki sa aktualizowane co pol godziny i umieszczane na serwerach ftp, tak wiec ssasz taki plik z okreslonej lokalizacji (nazwa pliku najczesciej jest w formacie odpowiadajacym danej stacji meteo w danej czesci globu) a pozniej odczytujesz dane

http://pl.wikipedia.org/wiki/Depesza_METAR


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0