Scraping rezultata

pozdrav…

prvi puta pokušavam napraviti scraing…našao neke primjere na netu i pokušvam prilagoditi potrebama ali baš mi i njde…evo koda

<?php

$url = "http://www.sfstats.net/handball/leagues/17_Elitserien_M/2010-2011/allresults";
$raw = file_get_contents($url);

$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B");
$content = str_replace($newlines, "", html_entity_decode($raw));


$start = strpos($content,'<tr class="allheader>"');
$end = strpos($content,'</table>',$start);
$table = substr($content,$start,$end-$start);


preg_match_all("|<tr(.*)</tr>|U",$table,$rows);

foreach ($rows[0] as $row){

    if ((strpos($row,'<th')===false)){
 
        preg_match_all("|<td(.*)</td>|U",$row,$cells);
     
        $player1 = strip_tags($cells[0][0]);
        $resulte = strip_tags($cells[0][1]);
        $player2 = strip_tags($cells[0][2]);
     
        echo "{$player1} <b>{$resulte}</b> {$player2} 
\n";
 
    }

}

?>

znači želim prikupiti rezultate sa stranice

http://www.sfstats.net/handball/leagues/17_Elitserien_M/2010-2011/allresults

e sad kako da maknem dio

Home Score Away

i ako je moguče kako da u svakom redu imam datum od reda iznad…znači da to izgleda

[quote=""]Wed, 2011 February 02. @ 19:00 H 43 26 : 34 Malmö HK IFK
Wed, 2011 February 02. @ 19:00 Alingsas HK 30 : 29 Aranäs HK
Wed, 2011 February 02. @ 19:00 Hammarby IF 22 : 26 Kristianstad IFK
Wed, 2011 February 02. @ 19:00 Guif IF 29 : 35 Lugi HK
[/quote]

umjesto dosadašnjih

[quote=""]
Wed, 2011 February 02. @ 19:00
H 43 26 : 34 Malmö HK IFK
Alingsas HK 30 : 29 Aranäs HK
Hammarby IF 22 : 26 Kristianstad IFK
Guif IF 29 : 35 Lugi HK [/quote]

Skineš phpQuery, malo proučiš priručnik i dobiješ nešto tipa ovo :slight_smile:

Dio ispisa

array
  'Wed, 2011 February 02. @ 19:30' => 
    array
      0 => 
        array
          'home' => string 'Sävehof IK' (length=11)
          'score' => string '31 : 26' (length=7)
          'away' => string 'Drott HK' (length=8)
          1 => string '1.20' (length=4)
          'x' => string '11.88' (length=5)
          2 => string '5.72' (length=4)
  'Wed, 2011 February 02. @ 19:00' => 
    array
      0 => 
        array
          'home' => string 'H 43' (length=4)
          'score' => string '26 : 34' (length=7)
          'away' => string 'Malmö HK IFK' (length=13)
          1 => string '2.08' (length=4)
          'x' => string '8.38' (length=4)
          2 => string '2.02' (length=4)
      1 => 
        array
          'home' => string 'Alingsas HK' (length=11)
          'score' => string '30 : 29' (length=7)
          'away' => string 'Aranäs HK' (length=10)
          1 => string '1.25' (length=4)
          'x' => string '11.13' (length=5)
          2 => string '4.88' (length=4)
      2 => 
        array
          'home' => string 'Hammarby IF' (length=11)
          'score' => string '22 : 26' (length=7)
          'away' => string 'Kristianstad IFK' (length=16)
          1 => string '1.86' (length=4)
          'x' => string '8.50' (length=4)
          2 => string '2.28' (length=4)
      3 => 
        array
          'home' => string 'Guif IF' (length=7)
          'score' => string '29 : 35' (length=7)
          'away' => string 'Lugi HK' (length=7)
          1 => string '1.35' (length=4)
          'x' => string '10.50' (length=5)
          2 => string '3.89' (length=4)
      4 => 
        array
          'home' => string 'Redbergslids IK' (length=15)
          'score' => string '33 : 28' (length=7)
          'away' => string 'Lindesberg LIF' (length=14)
          1 => string '1.40' (length=4)
          'x' => string '10.25' (length=5)
          2 => string '3.52' (length=4)
      5 => 
        array
          'home' => string 'Ystads IF' (length=9)
          'score' => string '27 : 35' (length=7)
          'away' => string 'Skövde HK IFK' (length=14)
          1 => string '1.66' (length=4)
          'x' => string '9.50' (length=4)
          2 => string '2.59' (length=4)
  'Thu, 2010 December 30. @ 19:15' => 
    array
      0 => 
        array
          'home' => string 'Aranäs HK' (length=10)
          'score' => string '26 : 35' (length=7)
          'away' => string 'Sävehof IK' (length=11)
          1 => string '3.30' (length=4)
          'x' => string '10.63' (length=5)
          2 => string '1.42' (length=4)
          ....

loše se snalazim sa klasam :frowning:

znam da puno tražim, no dali bi mi mogao napisati kod, koji bi to vrijednosti spremao u 4 varijable;

date, home, result, away

a onda ću sam oblikovati vrijednost daatuma, razdvojiti rezultat na 2 djela, te zapisati podatke u bazu…

dio sam uspio riješit :potboy:

sad još samo da uspijem svakoj utakmici pridružit odgovarajući datum…

datum mi je bitan samo iz razloga kad ću podatke spremat u bazu, da mogu provjerit postoji li već taj unos…

obzirom da želim jednom dnevno provjeriti nove rezultate i zapisati ih u bazu, trebam prvo provjeriti dali su dvije ekipe međusobno igrale na isti dan, kako nisu onda zapisuj, ako jesu onda preskoći…

ako ne uspijem, morat ču drugačijim putem…upiši u bazu sve pročitane podatke ali im pridruži datum updejta(trenutni datum)…obriši iz baze sve podatke kojima je datum unosa, stariji od “trenutnog datuma”

[quote=“hori”]dio sam uspio riješit :potboy:

sad još samo da uspijem svakoj utakmici pridružit odgovarajući datum…

datum mi je bitan samo iz razloga kad ću podatke spremat u bazu, da mogu provjerit postoji li već taj unos…

obzirom da želim jednom dnevno provjeriti nove rezultate i zapisati ih u bazu, trebam prvo provjeriti dali su dvije ekipe međusobno igrale na isti dan, kako nisu onda zapisuj, ako jesu onda preskoći…

ako ne uspijem, morat ču drugačijim putem…upiši u bazu sve pročitane podatke ali im pridruži datum updejta(trenutni datum)…obriši iz baze sve podatke kojima je datum unosa, stariji od “trenutnog datuma”[/quote]

Ako koristim strukturu varijable $list kao što sam u svom prethodnom pust napisao, sljedeći kod ti služi za iteriranje kroz taj niz.

Varijabla $datum ti sadrži datum za sve rezultate koji su se odigrali recimo u 15:00 a unutarnja foreach petlja će ti proći kroz sve rezultate koji su bili u 15:00

Znači pseudokod bi ti bio

za svako vrijeme 
    za svaki zapis u tom vremenu
        napravi nešto (u našem slučaju uzmi vrijednosti i spremi u varijable)

Prouči službene PHP stranice za foreach petlju!


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja