[ sekvoja @ 05.09.2007. 00:45 ] @
Konkretno hocu da izvucem tabelu Premier lige sa sajta http://www.premierleague.com/page/LeagueTable

Ustvari ja uspem da prikazem tekst sa te strane, ali kako da manipulisem
tim podacima, tj kako da te podatke ubacim u moju bazu. Treba mi neki
konkretan primer kako izvuci samo deo stranice, u ovom slucaju stanje
na tabeli, i zatim te podatke ubaciti u database.

Evo koda koji koristim:

Code:
include("snoopy.class.php");

$snoopy = new Snoopy;

// need an proxy?:
//$snoopy->proxy_host = "my.proxy.host";
//$snoopy->proxy_port = "8080";

// set browser and referer:
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";

// set some cookies:
$snoopy->cookies["SessionID"] = '238472834723489';
$snoopy->cookies["favoriteColor"] = "blue";

// set an raw-header:
$snoopy->rawheaders["Pragma"] = "no-cache";

// set some internal variables:
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;

// set username and password (optional)
//$snoopy->user = "joe";
//$snoopy->pass = "bloe";

// fetch the text of the website www.premierleague.com:
if($snoopy->fetchtext("http://www.premierleague.com/page/LeagueTable")){ 
    // other methods: fetch, fetchform, fetchlinks, submittext and submitlinks
    
    // response code:
    print "response code: ".$snoopy->response_code."<br/>\n";
    
    // print the headers:
    
    print "<b>Headers:</b><br/>";
    while(list($key,$val) = each($snoopy->headers)){
        print $key.": ".$val."<br/>\n";
    }
    
    print "<br/>\n";
    
    // print the texts of the website:
    print "<pre>".htmlspecialchars($snoopy->results)."</pre>\n";
    
}
else {
    print "Snoopy: error while fetching document: ".$snoopy->error."\n";
}
[ Nemanja Avramović @ 05.09.2007. 09:33 ] @
Mislim da ne treba da koristiš fetchtext već fetch kako bi dobio HTML kod stranice. A posle ti ostaje samo da isparsiraš HTML i da izvučeš podatke (što ne bi trebalo da bude teško )
[ sekvoja @ 05.09.2007. 15:01 ] @
He he, nije tesko. Verovatno i nije ali bi mi dobro dosao
neki savet kako to da uradim. Ja skinuo neke klase za
html parsing ali sada ne znam kako da izvucem samo
ono sto mi treba.

Imas neki predlog? Mozda neki primer...
[ Br@nkoR @ 05.09.2007. 16:46 ] @
DOM, RegEx...
[ Nemanja Avramović @ 05.09.2007. 17:54 ] @
Kao što Branko reče, ja bih koristio RegEx (inače, da nije bilo Branka ja se nikada ne bih zaintresovao za regex ), ali ako ne poznaješ regex (mada iskreno savetujem da ga naučiš) možeš da probaš table2arr
[ sekvoja @ 05.09.2007. 19:15 ] @
Nasao sam HTMLSax3 skriptu. Html tabele na sajtu vraca u vidu array-a.
Onda sa for petljom izvucem podatke od recimo 20.-40. array-a i isprintam
ono sto mi treba.

Hvala, i sigurno cu pogledati regex...
[ Br@nkoR @ 05.09.2007. 19:23 ] @
offtopic:
Citat:
Nemanja Avramović:
inače, da nije bilo Branka ja se nikada ne bih zaintresovao za regex :)

He, he :), nisam znao... :)
[ Nemanja Avramović @ 05.09.2007. 19:34 ] @
table2arr radi isto to, celu tabelu prebaci u višedimenzionalni niz

offtopic: Pa da, Branko, ti si mi par puta pokazao kako se neki problemčići rešavaju veoma lako preko regex-a pa sam ga malo proučio... još ga ne znam nešto perfektno ali snalazim se
[ sekvoja @ 05.09.2007. 20:15 ] @
Jos nesto, kada ubacujem u bazu te vrednosti dobijam prazan string,
iako se podaci stampaju na strani..

Jel postoji neka caka?
[ Nemanja Avramović @ 05.09.2007. 20:53 ] @
Ahm, mislim da to prevazilazi okvire ove teme. Postavi novu, ako misliš da je problem do PHPa