|
|
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
|
|