pl.comp.lang.delphi
[Top] [All Lists]

Re: Pobieranie danych archiwalnych z lotto

Subject: Re: Pobieranie danych archiwalnych z lotto
From: Andrzej Kmicic
Date: Thu, 31 Jul 2008 14:35:48 +0200
Newsgroups: pl.comp.lang.delphi


TOmek pisze:
Witam!
Poszukuje procedury pobierajacej dane m.in. ML, DL z archiwum lotto.pl. To co do tej pory wyszukalem na chwile obecna juz jest nieaktualne.

Pozdrawiam
    Tomek


He he na kłopoty mój niezawodny plugin pisany w Delphi polecam :-). No kto napisze krótszą procedurę niż to robi skrypt : Był kłopot bo kiedyś było to proste dawali link do gotowca tekstowego (on chyvba gdzieś jest ale nie znalazłem) a teraz jakiś TWÓRCA stron internetowych wymyslił paczkowanie po 10 losowań. Tak więc chcąc pobrać całą bazę trzeba 460 razy ściągac plik i połaczyc go w całość. Ja zacząłem od numeru 4200 bo mam chorobliwie wolny blueconnect. Ale można zacząć od numeru 1.

UWAGA NA ŁAMANIE LINII W POCZCIE

<?
set_time_limit ( 0 );
// test bez ściągania
// nppUserCommand("NPPM_ACTIVATEDOC",0,0); // aktywuj pierwszą zakładkę notepada++ widok=0, zakładka=0
// $html=ClearHtmlTag(sciGetText());

$num=4200; // numer pierwszego losowania
$newnum=10;
while (true) {
$link="http://serwis.lotto.pl/183-41fa1f49caa3c.htm?id_gra=1&data=01-01-1957&sortuj=on&numer=$num";;
$html=file_get_contents($link);
$html=ClearHtmlTag($html);
//file_put_contents ( "strona.html",$html);
$matches=array();
preg_match_all ( "/(\d{1,4})\s+\d{4}-\d{2}-\d{2}\s+\d{1,2}\s+(?:,\s\d{1,2}\s?)+/" , $html , &$matches);
foreach($matches[0] as $key=>$item) {
$item=preg_replace(array("/[\s]+/","/[,]+/"),array(",",","),trim($item));
$newnum=$matches[1][$key];
print "$item\n";
};
if ($newnum<=$num) break;
$num=$newnum+1;
};



function ClearHTMLTag($content) {
        $search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out 
javascript
        "'<[\/\!]*?[^<>]*?>'si",  // Strip out html tags
        "'([\r\n])[\s]+'",  // Strip out white space
        "'&(quot|#34);'i",  // Replace html entities
        "'&(amp|#38);'i",
        "'&(lt|#60);'i",
        "'&(gt|#62);'i",
        "'&(nbsp|#160);'i",
        "'&(iexcl|#161);'i",
        "'&(cent|#162);'i",
        "'&(pound|#163);'i",
        "'&(copy|#169);'i",
        "'&(middot|#183);'i",
        "'&#(\d+);'e",
        "'\r\n|\r|\n'msi",
        "'\s+'msi");

        /*,
        "'^[ ]*void 'si",
        "'^[ ]*int 'si",
        "'^[ ]*string 'si",
        "'^[ ]*mixed 'si",
        "'^[ ]*public 'si",
        "'^[ ]*private 'si",
        "'^[ ]*bool 'si",
        "'^[ ]*final 'si",
        "'^[ ]*array 'si",
        "'^[ ]*float'si"); */
        // evaluate as php

        $replace = array ("",
           " ",
           "\\1",
           "\"",
           "&",
           "<",
           ">",
           " ",
           chr(161),
           chr(162),
           chr(163),
           chr(169),
           chr(183),
           "chr(\\1)",
           "",
           " ",);
           //"","","","","","","","","","");
return preg_replace ($search, $replace, $content);
}

?>

skrypt wydaje w nowej zakładce wyniki w postaci :

4551,2008-06-21,12,14,18,35,39,42
4552,2008-06-24,19,20,25,28,33,49
4553,2008-06-26,2,18,35,40,42,47
4554,2008-06-28,15,18,21,36,39,45
4555,2008-07-01,5,10,24,29,37,40
4556,2008-07-03,1,4,11,18,36,48
4557,2008-07-05,8,18,20,29,30,42
4558,2008-07-08,9,13,16,34,36,46
4559,2008-07-10,11,13,16,20,35,39
4560,2008-07-12,1,5,7,9,13,22
4561,2008-07-15,4,13,20,22,35,40
4562,2008-07-17,2,7,23,30,31,47
4563,2008-07-19,2,11,21,38,39,41
4564,2008-07-22,17,21,22,41,43,49
4565,2008-07-24,2,4,10,35,42,44
4566,2008-07-26,1,11,16,18,31,44
4567,2008-07-29,2,6,15,25,29,30

pozdrówka AK

<Prev in Thread] Current Thread [Next in Thread>
Privacy Policy