Ukazujeme fotbalové tabulky

/ Blog / PHP / Ukazujeme fotbalové tabulky

Publikováno v sekci PHP v 12. 6. 2008 - 13:12

aktualizováno

Na svém webu potřebuji zobrazovat tabulky ze současného mistrovství evropy ve fotbale ( EURO 2008). Ručně se mi nic aktualizovat nechce, a vkládat tabulky z jiného serveru např. pres I-frame už vůbec ne. Zvolil jsem proto cestu nejmenšího odporu - sice beru tabulky z jiného serveru, ale mohu si s nimi dělat chci ...

Vybral jsem si server SPORT, jelikož je bez výpadků, aktualizuje ihned po skončení zápasu a jeho kód je přehledný a snadný k parsování

1: /** * showSoccerTable() * * Funkce umoznuje parsovat fotbalove tabulky ze serveru SPORT * * @date 12-06-2008 * @author Roman Janko <admin> * @param string $url nacitame konkretni tabulku ze serveru SPORT * @param integer $ttl nastavujeme dobu expirace stahovani, defaultne 3600 (1 hodina) * @return string * */ function showSoccerTable($url = '', $ttl = 3600) { // vychozi priznak $cached = true; // nenalezen soubor nebo probehl expiraci if (!is_file("./cache/" . md5($url)) || time() - filemtime("./cache/" . md5($url)) > $ttl) $cached = false; // neni kesovano if (!$cached) { // debug //echo "znovu parsujeme tabulku - " . date('d.m.Y H:i:s'); $f = file_get_contents($url); if (!$f) { echo 'Nelze načíst - ' . $url ; return; } $table = preg_match("~<table id="\"teamTable\"">(.+?)</table>~s", $f, $out); $ourTable = '<table border="1">' . strip_tags($out[1], "<td>,</td><tr>,<table>,<th>") . '</th></table>'; // ulozime file_put_contents("./cache/".md5($url), $ourTable); } // nacteme tabulku $table = file_get_contents("./cache/".md5($url)); return $table; }
1: // Použití echo showSoccerTable('http://fotbal.sport.cz/tabulka?sectionId=708&competitionId=3');

Tato funkce je opět velmi jednoduchá ( jiné ani nepublikuji, protože nemám čas se rozepisovat :) a ani nechci vyvolávat nějaký flame se zkušenějšími programátory). Takže ve zkratce co dělá

  • Vyzobne tabulku dle zadané URL ( musíte se podívat jakou tabulku chcete vyzobnout a poté její url předat funkci)
  • Uloží výstup do souboru a to proto, abychom nemuseli neustále při každém obnovení stránky tabulku stahovat, nastavíme TTL ( doba cache souboru, tj. jak dlouho nám soubor vydrží po zparsovaní do doby než si bude muset znovu sáhnout na server SPORT)
  • Vrátí nám tabulku připravenou k použití (výstupu na obrazovku)
  • POZOR! Důležité je v adresáři, kde budete volat funkci, mít vytvořený adresář cache, aby se Vám měly kam ukládat výstupy. Jinak to nebude fungovat

Pokud si přejete tabulku nastylovat pomocí CSS stylu stačí přidat třídu k níže uvedenému kódu

1: $ourTable = '<table border="1">' => $ourTable = '<table border="1" class="moje-vlastni-trida">'

Tato funkce fungovala v době vydání článku, pokud autoři serveru SPORT změní HTML výstup, tak asi přestane, uvidíme :)


26.8.2014 - doplnění

Jelikož je tento článek stále žádaný a v komentářích jsou odkazy nefunkční nebo se špatně hledají přináším výčet všech dostupných parserů pro různé servery o které tu byl zájem:

Kategorie

  • Osobní názory - 1x
  • PHP - 9x
  • MYSQL - 4x
  • CSS - 7x
  • jQuery - 3x
  • Sociální síť - 1x
  • Nette - 5x
  • Tipy & triky - 3x
  • Twitter Bootstrap - 1x
  • Týdenní tipy a novinky - 4x
  • SCSS - 1x
  • GIT - 1x
  • Gulp - 1x

  • Komentáře (174x)

    #1 reagovat Okruh:
    Šlo by to nějak udělat i na fotbal.cz? Starám se o stránky jednoho fotbalového klubu a jejich tabulka je jen tam...
    #2 reagovat Roman Janko:
    [1] Okruh Hod konkretni odkaz a mrknu se ...
    #3 reagovat Okruh:
    [2] Roman Janko Konkrétně se jedná o toto (je blokováno vkládání odkazů, takže je nutné si před tuto cestu dopsat fotbal.cz): /c/KaO/souteze.asp?soutez=003J2B
    #4 reagovat Roman Janko:
    takze tady to mas

    http://www.rjwebdesign.net/examples/tabulka-fotbal-cz/index.php

    a tady je zdrojak

    http://www.rjwebdesign.net/examples/tabulka-fotbal-cz/index.phps

    podotykam ze musis mit jeste v adresari ve kterem to spoustis vytvoren adresar cache
    #5 reagovat Okruh:
    [4] Roman Janko Děkuji, děkuji moc. Ani nevím, jak ti poděkovat. Ušetřil jsi mi spoustu práce. Opravdu moc děkuji...
    #6 reagovat Roman Janko:
    [5] Okruh Rado se stalo
    #7 reagovat Cup:
    Ahoj, prosím neposkytl by jsi mi taky zdrojovéj kód pro tahání tabulek z Fotbal.cz ? mám stejný promlém jako "Okruh", ale ty linky co jsi mu nabídl již nejsou aktvní :( díky
    #8 reagovat Roman J:
    [7] Cup Huf, uz jsem to smazal, jakou soutez potrebujes konkretne?
    #9 reagovat CUP:
    Hele jde mi o soutěž http://nv.fotbal.cz/domaci-souteze/kao/vysocina/zdar/souteze.asp?soutez=615A1A díky
    #10 reagovat Roman Janko:
    [9] CUP Sorry, nemel sem cas, napis im vecer na ICQ.
    #11 reagovat CUP:
    [10] Roman Janko
    AHoj taky jsem ted nemel cas, ale urcite se ozvu. ahoj
    #12 reagovat Cup:
    Hele jen k tem tabulkam, co sem se ti mel ozvat, chci rict ze s moji brigadou se to povede az po prazdninach, ale ozvu se díky ahoj
    #13 reagovat Roman Janko:
    [12] Cup HH delas nocniho hlidace a pres den spis? ;-)
    #14 reagovat Cup:
    nene proste nebyl cas :) uz sem ready :) tak se ozývám :) hele kdyby si mel chvilku tak by se mi tatabulka fakt hodila :) diky moc ahoj
    Ahoj, zaujal me tvuj parser na tabulky i už smazaná úprava pro fotbal.cz. Je možné získat od tebe tu úpravu pro fotbal.cz. Spravuju stránky našeho klubu a velice by se mi hodiltenhle kod pro zobrazení tabulek jednotlivých týmů klubu. Děkuju. Jo a jedná se o tuhle soutež: http://nv.fotbal.cz/domaci-souteze/kao/stredocesky/praha-vychod/souteze.asp?soutez=219A3A
    #16 reagovat Roman Janko:
    [15] BerenTady to je
    http://www.rjwebdesign.net/fotbal.cz.parser.phps
    [16] Roman Janko díky moc. hodně mi to pomohlo.
    #18 reagovat Roman Janko:
    [17] Beren Neni zac, pak hod odkaz na ten Vas klub, mrknu se.
    Tady je odkaz: http://www.skhusinec-rez.cz

    Byl jsem trochu v presu a především i líný se trošku zabývat tím původním kódem, abych si to přizpůsobil sám ;o). Takže jsem pak ještě dodělával rozhodovací mechanizmus pro jednotlivé týmy a překódování z WIN-1250 na UTF-8.
    Ještě jednou díky za námahu a předvším za nakopnutí, abych se taky víc interesoval o php kód který píšu ;o) Pokud budeš chtít podebatit tak moje ICQ je: 26090115
    #20 reagovat Roman Janko:
    [19] Beren Jeste jednou neni zac. Co se tyka stranek, zapracoval bych predevsim na grafice, uprimne ( je dost hrozna ) :]
    [20] Roman Janko Mno zatím se soustřeďuju na funkčnost, grafika bude vylepšena časem. To víš malý vesnický klub. Spravuju web, píšu reporty a ještě hraju a trénuju. Je toho moc ;o)
    Ahoj,
    Skusal som to vselijak rozbehat ale sa mi to ani raz nepodarilo nemohol by si sa na to pozriet, velmi by mi to pomohlo. Jedna sa mi o tuto tabulku : http://www.futbalvregione.sk/bfz-sutaze?p=57&func=showResultsRank Neviem ten kod zmenit tak aby to slo ako Berenovi.
    Ďakujem !
    #23 reagovat Roman Janko:
    [22] Kelo
    Tak tady to mas (ukazka)
    http://www.rjwebdesign.net/examples/parser/index.php

    a kod
    http://www.rjwebdesign.net/examples/parser/source.phps
    #24 reagovat Kelo:
    [23] Roman Janko Ďakujem moc si mi pomohol .
    #25 reagovat Roman Janko:
    [24] Kelo Rado se stalo
    zdravim, ak by som tiež mohol poprosiť o radu, robil som stranku našho týmu v joomle ale niečo taketo by mi prišlo jednoduchšie, len problem je v tom že tabulky su tam blbo riešene vid http://www.obfz-lm.sk/tabulky.php a neviem ako by som to mohol napasovať do kodu aby to fungovalo (:
    zdravím, můžeš mi ukázat kód v celku? nevím co kam mám přesně takhle dát, jedná se o tabulku pro sport.cz - mockrát díky!
    #28 reagovat Roman Janko:
    [27] aleš No nevim co bych mel presne ukazat, v prikladu mas definici funkce a jeji volani, to je vse, nic jineho v tom neni.
    #29 reagovat aleš:
    kompletní skript, který bych si jen zkopíroval a vlozil url na tabulku.
    #30 reagovat Roman Janko:
    [29] aleš Viz clanek, vyzkousej si to nejdrive. Nevim co vic bych Ti mel poradit. Pokud neumis zkopirovat funkci a pouzit ji tak se ubirej jinym smerem.


    [26] likom Huh, lepsi server nemas?
    #31 reagovat Solar:
    Lze nějak dostat tabulky z ofisportu na mé stránky? např. tuto http://server2.ofisport.cz/ofi_fotbal_nj/apl.asp?ind=2&sou=6&radku=0&zo=2
    #32 reagovat Solar:
    Jo a bez té luyp s odkazem na statistiky, prostě jen po body pravdy
    Zdravim, chtěl bych poprosit o pomoc, už mě nebaví ručně zapisovat do tabulek, byl by někdo ochoten mě spravit autonatickej zápis+odehrane zápasy, stále se mě to nedaří tak hledám pomoc, tady je ukazka tabulek NHL http://nhlsezonahraonline.717.cz/menu/uvod
    #34 reagovat Roman Janko:
    [31] Solar Samozrejme ze jde, opet pres regularni vyrazy, je to porad dokola viz clanek


    [33] Vajtom Inspiruj se timto skriptem a pak si ho muzes doupravit http://www.rjwebdesign.net/download.php?fid=5&file=fotbalova-tabulka.rar
    #35 reagovat Vajtom:
    [34] Roman Janko Vajtom, koukal jsem na to a mám v tom zmatek, můžete mě napsat na ICQ: 568193781, třeba to tak lepe pochopím, děkuju.
    #36 reagovat Solar:
    [34] Roman Janko článek jsem si přečetl, ale mám spíš dotaz, zda-li toto lze a jakým způsobem aplikovat třeba na webgardenu?
    #37 reagovat Roman Janko:
    [35] Vajtom :-) prominte, ale tolik casu nemam abych mohl po ICQ vysvetlovat lidem skripty. Musite sam nebo se zeptejte na neco konkretniho. Pokud nechapete vubec nic, bude nejlepsi koupit si nejakou knihu o PHP.


    [36] Solar Lze, v podobe vlozeneho PHP pomoci IFRAMU nebo Javascriptu.
    #38 reagovat Vajtom:
    [37] Roman Janko RD stačil by mě nejakej stručnej návod
    #39 reagovat Solar:
    [37] Roman Janko a mohl bys mi prosím pomoct s napsáním kódu alespoň pro jednu tabulku?
    #40 reagovat Roman Janko:
    [39] Solar
    Ukazka: http://www.rjwebdesign.net/examples/parser2/index.php

    Kod: http://www.rjwebdesign.net/examples/parser2/source.phps
    #41 reagovat Roman Janko:
    [38] Vajtom Nejdrive je nutne se naucit alespon zaklady PHP a MySQL

    (Zde jsou vysvetleny zaklady + seriál jak postavit malý portál)
    http://www.linuxsoft.cz/article_list.php?id_kategory=181

    Az to budete umet a budete chapat o co jde tak se staci podivat na tento clanek

    http://www.rjwebdesign.net/Blog/PHP/20080113-Generovani-Nejen-Fotbalove-Tabulky

    A budete vedet o co jde. At se dari.
    #42 reagovat Solar:
    [40] Roman Janko díky moc, ale jak to vložím na webgarden netuším ... nemáš nějakou praktickou radu?
    [30] Roman Janko no bohužial nemám, toto je jediná stránka ):...
    #44 reagovat Roman Janko:
    [43] likom

    Ukazka
    http://www.rjwebdesign.net/examples/parser3/index.php

    Kod
    http://www.rjwebdesign.net/examples/parser3/source.phps

    Konkretni sezonu a typ muzstva si musis zjistit ze zdrojoveho kodu. Je tam CURL funkce navic, na Tebou uvedenem webu se to posila pres metodu POST, proto se to dela o neco sloziteji.
    Zdarec, mohl by si mi to taky udělat pro http://nv.fotbal.cz/domaci-souteze/kao/vysocina/souteze.asp?soutez=610E1A ? děkuji :)
    [45] hofik Tady je výsledek http://www.rjwebdesign.net/examples/parser5/index.php a tady je skript
    http://www.rjwebdesign.net/examples/parser5/source.phps
    [46] RomanJanko Díky moc a promin že te ješto otravuju, šlo by to udělat ještě pro následující zápasy a výsledky? Děkuji
    [47] hofik http://www.rjwebdesign.net/examples/parser6/index.php a http://www.rjwebdesign.net/examples/parser6/source.phps

    A pokud se naučíš alespoň trošku regulární výrazy, tak to příště zvládneš sám.
    Dík moc, už sem to zvládl, ale rád si to zkondroluji :)
    Ahoj, je mi jasné že už jsi to tu řešil hodněkrát, ale přesto bych tě rád poprosil o radu. Chtěl bych také generovat tabulku a to volejbalovou, tuto: http://www.cvf.cz/souteze.php?action=skupina&id=2791
    V prví řadě mi jde o tabulku, ale kdyby šli takto dělat i ty zápasy, tak to by byla uplná bomba... Zkoušel jsem si to nakopat do těch tvých scriptů ale bohužel neúspěšně.
    Díky moc
    [50] Háva Tak tu máš
    http://www.rjwebdesign.net/examples/parser7/index.php

    a

    http://www.rjwebdesign.net/examples/parser7/source.phps
    Děkuji ti za ukázku, trošku se v tom šťourám a chtěl bych si ty tabulky nějak stylizovat podle svého ale bohužel v tom kodu co jsi mi napsal nikde nemužu najit kde mam ty styly použít.
    [52] Háva Kazda tabulka ma svoji tridu (class), tohle musíš zvládnout sám. Tohle je totální základ.
    To ja vím ale když si zkusím tu tabulku nějak stylizovat tak mi to háže chyby, koukal jsem se na ty tvoje scripty na zacatku a tam pouzivas: $ourTable = ''
    Ale to u tohé mého nevidím a nevím kam tedy tu třídu přidat.

    Tak sem asi lama ale bohužel sem na to neprisel kam tu tridu dat. Muzes me prosim te jeste nejak nakopnout? Moc dekuji
    Když se podíváš sem http://www.rjwebdesign.net/examples/parser7/index.php tak zjistíš, že každá tabulka (tabulka i výpis zápasů) má třídu oznac.

    Takže si stačí v CSS tuto třídu nastylovat a nic víc řešit nemusíš.

    .oznac {}
    .oznac td {}

    Toto snad chápeš ne?
    Jo tohle mi je jasné to se mi i povedlo a potřeboval bych aby každý sloupec byl třeba jinak barevný. A ještě jeden dotaz kdybych chtěl nějaký řádek zvíraznit tak jak na to?
    [57] Háva Opět přes regulární výrazy. Pokud chceš mohu Ti to připravit, ale už to bude v rámci placené práce. Jistě chápeš, že nemůžu každému upravovat aplikaci na míru ZDARMA.
    Spíš by jsem se to chtěl nějak naučit, chápu ale že takhle by tě mohl otravovat každý. Já v těch výrazech zatím dost plavu, tak sem myslel jenom třeba část na pochopení. Ale jestli ne tak i tak dík za rady a pomoc.
    Nejsnažší by to bylo pomocí javascriptu, potažmo jQuery

    jQuery
    =========================
    $("td:contains('Název týmu')").parent("tr").css("background", "red");

    pomocí PHP by to bylo složitější a je X způsobů - regulární výraz, nebo funkce na práci se stringem, ted bohužel nemám čas to zkoušet.
    [59] Háva Zkus diskusi JPW http://djpw.cz

    Je tam spousta lidí co nemají nic na práci a určitě Ti to napíší.
    Ahoj jednou sem si odtud stahl fotbalovou tabulku ale nechtěne sem ji smazl nemohl by jsi mi dat odkaz kde bych ji stahl předem dík za odpověď
    Zdravím, ačkoliv jsem si myslel, že to dokážu zprovoznit i na jiné tabulce, tak jsem to bohužel nedokázal. Pokud bys měl někdy čas a chuť, mohl by jsi se mi podívat na tabulku:
    http://www.cfbu.cz/redakcni_system/index.php?tabulka=1&soutez=6101
    (jen úplně ta horní)

    Díky
    [63] Camel Soutěže a tabulky nahrávají pomocí ajaxu, proto bude parsovací URL jiná.

    http://www.rjwebdesign.net/examples/parser8/

    http://www.rjwebdesign.net/examples/parser8/source.php
    Díky moc za úpravu.

    Můžu se ještě jen zeptat, odkud jste vzal ty adresy, když bych si chtěl v budoucnu ještě "vysosnout" například statistiky a výsledky zápasů?
    Dá se to zjistit pro neznalce ajaxu lehce, nebo to chce hlubší znalosti?
    Předpokládám že odkaz je z kusu zdrojáku:
    makeHttpRequest('http://ext.cfbu.cz/proxy.php',"&division_code=A&competition_code=1XM42010/2011&functionname=reports&reportno=3","fisexternal","vystup1");

    Pokud to není na delší vysvětlování, budu samozřejmě rád za odpověď. Jinak pochopím, pokud se nechcete zadarmo zdržovat dlouhým vysvětlováním.
    Našel jsem si například odkaz:
    http://www.cfbu.cz/fis_proxy.php?request=fisexternal&ajax=1&functionname=reports&reportno=11&completelist=1&competition_code=1XM42010/2011&division_code=A&team_id=6154&antiCache=1300653061006&elementid=vystup1&targetdiv=true&async=true

    ale nezobrazujeme se mi to správně. Ale tak bude to tím, že moc nevím co dělám a jen to zkouším.
    [65] Camel Stáhněte si Firefox, plugin Firebug a pak prozkoumejte konzoli. Tam se ukazuji Ajaxové requesty, z toho jsem tu adresu získal
    Abych nezapomněl, chtěl bych poděkovat za tenhle článek. Už jsem zjistil jak celá fce funguje, takže si můžu "ukrást" jakoukoliv tabulku, což je pro mě dosti vysvobozující, protože se nemusím starat o aktualizace apod.
    Ještě jednou díky za Vaši ochotu a pomoc.

    Ještě mám jednu malou otázečku. Potřeboval bych poradit, jak upravit jquery $("td:contains('Název týmu')").parent("tr").css("background", "red");
    aby se upravovali pouze konkrétní tabulky, tj. tabulky např. class="zapasy"

    Díky
    [70] Camel $("table.zapasy td:contains('Název týmu')").parent("tr").css("background", "red");
    #72 reagovat Skobza:
    Velmi zajímavé povídání. Taky jsem přepisoval tabulky ručně, až jsem narazil tady na vás. Z fotbal.cz jsem to dokázal podle vašich ukázek vysosnout tabulku, ale šla by sosnout i tahle tabulka? http://www.ofszlin.cz/php/seznam_uni.php?sout_id=5&sid=5&idn=2
    [72] Skobza Jde to, akorát se trošku zamyslet

    http://rjwebdesign.net/examples/parser9/

    http://rjwebdesign.net/examples/parser9/source.php
    #74 reagovat Skobza:
    Díky moc. Já jsem takový samouk.
    [74] Skobza Není zač, já v podstatě taky.
    #76 reagovat Petr:
    Ahoj Romane,
    prosím Tě, někde výše si uváděl přímo ukázku, jak "tahat" tabulky z fotbal.cz. Zkusil jsem to "tahat" z http://nv.fotbal.cz/domaci-souteze/druha-liga/dalsi-info/souteze.asp?soutez=001A2A&show=Tabulka , ale nefunguje mi to. Podíval by ses na to? Jde o to "tahat" ty první tři tabulky. Byl bych Ti moc vděčný... Petr
    [76] Petr Stačilo pohledat v komentářích, byl to parser pod url parser5.

    Tvůj samostatný je zde http://www.rjwebdesign.net/examples/parser11/
    #78 reagovat Skobza:
    Čau, jsem tu zase pro radu. 3lo by vytáhnout tabulku z této stránky? Tu spodní. http://www.eautobazar.com/hscentrum/index_new.php
    [78] Skobza S čím máš konkrétně problém? Tabulka je snadno zachytitelná (má své ID), je to stále to samé pořád dokola.

    #80 reagovat Skobza:
    [79] RomanJanko Mně se to nějak nedaří asi jsem natvrdlej. Potřeboval bych nakopnout!
    Výborná stránka! Ale snažil jsem se dlouho a jsem lama :( Potřeboval bych vysosnout nějaká data z této tabulky - jde mi o teploty jedné z rek

    http://www.raft.cz/sjizdnost.aspx

    Ale nemuzu tu stranku pomoci vasich skriptu vubec nacist :( Asi je to tim, ze je to v aspx?
    [81] qendorf Co tedy potřebuješ konkrétně?
    [80] Skobza Nakopávám Tě http://www.rjwebdesign.net/examples/parser12/index.php

    zdroják: http://www.rjwebdesign.net/examples/parser12/source.php
    #84 reagovat Skobza:
    [83] RomanJanko Super věc. Jsem to špatně psal. Měl bych ještě takový dotaz - v té tabulce jsou odkazy na fotky, ty nefungujou v naší tabulce. Nešlo by to nějak i s něma? Dík moc.
    #85 reagovat Skobza:
    [84] Skobza Blbost všechno fachčí. Ještě jednou díky!!!
    #86 reagovat Skobza:
    Teď mně to pro změnu vyhazuje hlášku Warning: Cannot modify header information - headers already sent by (output started at /3w/wz.cz/h/hscentrum/aboutus.php:15) in /3w/wz.cz/h/hscentrum/aboutus.php on line 112 Co s tím pls?
    [86] Skobza Tohle s parserem nemá nic společného. Dělá to funkce header (tak jí dej pryč).

    Řešit základní PHP problémy nebudu :-)

    Navštiv diskusní fórum http://d.jpw.cz
    Ahoj, asi po roce jsem se dostal zase na tvoje stránky a vidím, že stále odpovídáš :-)
    Před tím asi rokem jsem to vzdal, ale teď mě to zase nedá. Mohl bys mi pomoct s tabulkou z vysledky.com? Předem díky
    http://vysledky.lidovky.cz/fotbal/fotbal_soutez.php?stat=%C8esko&vek=mu%9Ei&typ=mistrovsk%E1_sout%EC%9E&pozice1=4&id_session=
    [88] Karel Tu máš

    http://www.rjwebdesign.net/examples/parser13/index.php

    http://www.rjwebdesign.net/examples/parser13/source.php
    Takže statistiky, výsledky, tabulky, vše dokážu získat, ale kde najdu statistiky konkrétního hráče, jsem nepřišel. Viz. http://fis.cfbu.cz/index.php?pageid=2501&onlycontent=1&personal_id=0810021091&part=5

    Díky za odpověď
    [90] Camel Co je na tom nejasného, pořád to samé dokola, navíc zde s jednoduchým HTML které se dá krásně zachytit.

    Lidi neštvete mě..
    Mně stačí jen ten link. Request na statistiky, tabulky družstev apod. se v konzoli zobrazí, to mi funguje, ale u konkrétních statistik ho nejsem prostě schopen z Firebugu vysosnout.
    [92] Camel Stále nechápu co Ti nejde.

    http://fis.cfbu.cz/index.php?pageid=2501&onlycontent=1&personal_id=0810021091&part=5

    Na tomto linku vysosat tu tabulku? To je extrémně jednoduché a to psát už nebudu (jednoduché jako většina parserů zde ..)

    Co tedy?
    #94 reagovat Camel:
    Jojo, jen prostě nejsem schopen získat to url tý samotný tabulky. Protože jsou ty stránky přes Ajax, tak jsem vždy, jak si mi po radil, přes Firebug zjistil url nějaký tabulky a upravil si parser. Jenže tady nejsem schopen to prostě udělat...
    #95 reagovat Piranha:
    super věcička, která mi pomohla.
    kdybych si chtěl tabulku ukládat do databáze pro další využití, to se musí pak parsovat nějak po řádcích dané tabulky?
    #97 reagovat Piranha:
    a ještě jeden dotaz, když chci vypustit třeba jeden sloupec tabulky, např. odehrané zápasy nebo rozdíl skore ...., chápu to dobře, že celý řádek načtu přes array() a daný sloupec nahradím prázdným ""?
    #98 reagovat Mára:
    no já bych potreboval taky na fis.cfbu.cz vypreparovat jen samostatnou tabulku. ale nejak nevim jak sem lajk tak kdyby jste mi prosim pomohli
    [97] Piranha Rozparujes na jednotlivá a potom z toho pole ukrojíš co potřebuješ, žádná věda.


    [98] Mára Dodej kód který zkoušíš. na FIS už jsem parser psal, je to jednoduchý HTML kód, znovu to psát nebudu.
    #100 reagovat Piranha:
    [99] RomanJanko žádná věda, když to člověk umí ...
    jdu zkoušet.
    Jen zkoušej, tím se naučíš nejvíc :-) kdyby to nešlo tak hod na pastebin.com kód a já se na to podívám. (Kdyby to nešlo = předpokládám alespoň hodinovou snahu ..)
    Zkoušel jsem to, strávil jsem nad tím spoustu času, ale nejde mi to. Jediný co asi potřebuju, je link pro tu parsovací funkci např. showTable('url');
    nebo aspoň popíchnout. Všude jsou dělaný tabulky normálně, jen tady ( http://fis.cfbu.cz/index.php?pageid=2501&onlycontent=1&personal_id=0810021091&part=5 ) je to takhle: B. Už fakt nevim, jsem v koncích. Ten link pro tu parsovací fci přece není přímo ten, který sem dávám, nebo ano?
    Jinej link než http://fis.cfbu.cz/index.php?pageid=2501&onlycontent=1&personal_id=0810021091&part=5&season_id=14 jsem nenašel, tak jsem na to udělal parser, jenže protože ta tabulky je přes divy, dělá mi to tohle: http://www.florbalslaviaplzen.cz/index.php?s=tabulky_druzstev&druzstvo=muzia (dole na stránce)
    [103] Camel No vidíš, že jsi to vyparsoval, nyní je to otázka pouze CSS.(Stačí nastavit float: left;)

    [103] Camel Ahoj, mohl by jsi mi prosím poslat zdrojový kód pro zobrazeni te tabulky 2.ligy muzu? Uz se o to dlouho pokousim a ani s vyse uvedenym navodem mi to nefunguje. Moc dekuji. jan_kovar@seznam.cz
    [103] Camel Jeste jednou ahoj, již se podařilo, tak se omlouvám za zbytečný dotaz.
    Čau, já řeším problém s tím, že když na jednu stránku chci zobrazit dvě tabulky, tak mi to vyhrazuje chybu. Nemáte někdo s tímto zkušenosti. Děkuji za odpověď
    #108 reagovat Lukáš:
    čau můžu poprosit o zdrojový kód? :) Díky moc
    http://nv.fotbal.cz/domaci-souteze/kao/moravskoslezsky/opava/souteze.asp?soutez=815A2A
    [108] Lukáš Už jsem to tu jednou psal viz http://www.rjwebdesign.cz/examples/parser11/source.php
    #110 reagovat Lukáš:
    [109] RomanJanko Ono mě to nějak nejede :-/
    #111 reagovat Skobza:
    Nerad ruším tvůj klid, ale potřeboval bych, jestli by šly vytáhnout tabulky výsledky, následující kolo z http://nv.fotbal.cz/domaci-souteze/kao/zlinsky/zlin/souteze.asp?soutez=724A3A&show=Aktual
    Nějak se mně to nedaří , nejsem znalý.
    Předem díky za ochotu.
    #112 reagovat xpprof:
    jak mám použít tyto tabulky? Vůbec nevím jestli mám vytvořit nějakou databázy nebo něco podbného.
    Ahoj, potřebuju vytáhnout na svůj web tabulku z fotbal.cz. Kod zde máš umístěn. Je potřeba nějaké úpravy (vytvořit tabulku v DB), nebo stačí vložit na požadovanou stránku a bude fungovat? Díky za informaci.
    [113] Jungew Není, zavoláš funkci v PHP souboru a vypíše se to. Nic víc.
    Ahoj, můžu požádat o maličkou úpravu 13tky? (skript pro lidovky?) Mají nové schéma url, s tím jsem se bez problému popral, vložil jsem nové url, skript funguje. Co tam nejde a nejsem schopen opravit je odstraňování odkazů z převzatého obsahu. Ale hlavně tam mají v tabulce vložené prázdné celé řádky a občas prázdné buňky (asi kvůli designu), zkoušel jsem všechna možná str_replace, ale nedaří se mi to odstranit. Kdyžtak na mejlu poskytnu url výstupu, pro příklad, či cokoli potřebného. Předem děkuji... samozřejmě chápu dobrovolnost pomoci a v jakékoli formě ji uvítám
    Děkuji, již není třeba. Ty str_replace mi asi původně fungovaly, jen mě nenapadlo, že musím před každým testem skriptu promazávat adresář "cache", kde se cachují data. Takže odstranit ty prázdné řádky a pole, nebyl problém. (ereg_replace a regulérní výrazy by tedy problém byl, ale zde bohatě stačil str_replace)
    #117 reagovat RomanJanko:
    [116] Jey fajn ;) (ááá - no spam)
    RomanJanko: tak nakonec bych o menší pomoc chtěl přecejen požádat. Příliš nerozumím tomu CFBU.cz skriptu; a ajaxu obecně. Nicméně mám problém s tím, že mi nejde ten skript PARSER8 (po stažení, bez změny, po nahrání na můj hosting, kde je snad vše enabled) http://www.syt.cz/1/ - zde. V souboru s cachí je pravidelně zhruba toto (uložil jsem obsah do souboru) http://www.syt.cz/1/kase.txt - bohužel nejsem schopen rozeznat proč skript na vašem webu funguje a u mně ne.. díky za případný tip.
    Ze stránek fotbal.cz se parsuje dobře, ale nedaří se mi z tohoto zdroje: http://www.khfotbal.cz/soutez/rozpis/4/5/. Zřejmě nějaká skrytá adresa. Nemohu zjistit jaká...Můžu poprosit o malinkou pomoc? Díky.
    [119] Vladimír Táborský Zádna skryta adresa tam není, parser se musí upravit pro HTML z vaseho linku. Snazte se trosku, je to stale dokola.
    #121 reagovat Edinho:
    Mohl bych poprosit taky o tu tabulku okruh je tu
    http://nv.fotbal.cz/domaci-souteze/kao/jihomoravsky/znojmo/souteze.asp?soutez=627A2A
    at dělam co dělam vubec mi to nejde diky za ochotu
    #122 reagovat pan X:
    Nenechal by se udělat skript na Fotogaleri z webu RAJČE Idnes? Takhle vypadají galerie http://jaroslavcerny.rajce.idnes.cz/?insert=js .. šlo by to stahovat? Předem díky
    #123 reagovat pan X:
    Nenechal by se udělat skript na Fotogaleri z webu RAJČE Idnes? Takhle vypadají galerie http://jaroslavcerny.rajce.idnes.cz/?insert=js .. šlo by to stahovat? Předem díky
    [123] pan X Šlo, ale zkuste si to sám :-)
    #125 reagovat Skobza.cz:
    Nějak se v tom nevyznám, ten parser 6 mi ukazuje prázdnou stránku, když to zkouším na svých stránkách.
    [125] Skobza.cz Jak prázdná stránka, něco to ukazovat musí, zapni si kompletní error reporting.
    #128 reagovat Skobza.cz:
    To žádný error nepíše, prostě je jenom prázdno.
    Můžeš mi prosím poradit jak získat data z tabulky, která je zveřejněna na http://www.cfbu.cz/fis/open.php?reportno=4&competition_code=6ZM52012/2013&division_code=A. Díky
    [129] Taps http://www.cfbu.cz/fis_proxy.php?request=fisexternal&ajax=1&ajaxtask=reports&reportno=4&competition_code=6ZM52012/2013&division_code=A&antiCache=1354806698356&elementid=targetarea&targetdiv=true&async=true

    To už půjde ne?
    [130] Roman Janko Díky moc :-) jak se ti podařilo získat zmíněnou adresu ?
    [131] Taps Zapnul jsem si firebug :) a podíval jsem se do konzole na volání. :) 2x kliky
    Ahoj,
    Potřeboval bych prosím tuto tabulku hodit do toho scriptu http://vysledky.lidovky.cz/soutez.php?id_soutez=6189
    Udělal jsem vše podle návodu, ale na 36 řádku se mi vypsala chyba se T_STRING. Už jsem bezradný. Prosím.
    parádní a elegantní řešení ;-)....celou dobu jsem si říkal, k čemu ta funkce get_contens je vlastně dobrá, a po přečtení tohodle článku zjišťuji, že je zapeklitě silná...pomocí pář řádků kódu si můžu vlastně kopírovat veškerý obsah z jiných webů..

    jen, mě napadá, proč je tam ta proměnná cache - existence a neexistence url se řeší na jiném místě. A nevím, co to přesně má obsluhovat (jakou chybu to zachytává).

    Pak ještě nevím, k čemu je hashování url.
    [134] Vasek cache tam je proto, protože neustálé online stahování dat by zpomalovalo načítání webu. A data se tak často nemění, takže je stačí kontrolovat jednou za čas (parametr $ttl).

    Hashovaní url je nejsnažší způsob jak si uložit unikátní URL do souboru.
    Čau, parsovel jsem si podle tohoto návodu tabulku s cfbu, což se mi povedlo, ale potřeboval bych to ještě aby se tam zobrazovalo pouze
    poředí,tým,počet odehraných zápasu a body, je to možne?
    Ano lze, rozparsovat tabulku po řádcích a sloupcích a data, která nepotřebuješ "zahodit" tj. nevypisovat. Pro snažší parsování než jsou regulární výrazy bych doporučil tuto knihovnu http://simplehtmldom.sourceforge.net/
    aha, tak v tom se vubec nevyznám,
    neukazal by jste mi nějaky konkrétní přiklad z cfbu, pokud vam to nezabere moc času
    [138] dawe Ukázka pomocí SimpleDomu.

    http://rjwebdesign.cz/examples/parser21/

    zdroják:
    http://rjwebdesign.cz/examples/parser21/index.phps
    dik, jestli jsem to správně pochopil tak za $table dosadim tu tabulku co jsem si parsoval tim skriptem co je tady, to jsem udělal přes include ale dopadlo to takto
    http://testweb.hys.cz/6/test2.php
    tak se mi to už povedlo :)) dik
    Omlouvám se že tady otravuju ale mám ještě problém, tady jsem to popsal http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=146404 kdybys měl čas pomohl bys mi?
    Ahoj,
    omlouvám se že takto s tímo příspěvkem otravuji po bůhví jaké době, ale potřeboval bych upravit zdroj na
    http://vysledky.lidovky.cz/soutez.php?sport=1&stat=107&kraj=9&okres=69&vek=1&typ=1

    bylo by to také možné?
    Předem mockrát děkuji.

    Odkazy odsud již nefungují, abych porovnával a upravoval.
    #144 reagovat RomanJanko:
    [143] Robomysicka Odkazy fungují (resp. před každý si dopln backup.

    Když Ti to nepůjde tak se na to podívám. Ale rád bych viděl nějakou aktivitu a snahu ...
    Jak to myslíš?

    Pokoušel sem se to i vytvářet přes podobný skript.





    Ale v tomhle případě mi to nechce vzít data z tabulky, hlásí to chybu, že u řádku, kde se definuje div ho nelze najít.
    ....


    // vysledky

    $data = getData('http://vysledky.lidovky.cz/soutez.php?id_soutez=7300');


    echo $data;


    //


    function getData($url = '', $ttl = 3600)
    {
    // vychozi priznak
    $cached = true;

    // nenalezen soubor nebo probehl expiraci
    if (!is_file("./cache/" . md5($url)) || time() - filemtime("./cache/" . md5($url)) > $ttl)
    $cached = false;

    // neni kesovano
    if (!$cached)
    {
    // debug
    //echo "znovu parsujeme tabulku - " . date('d.m.Y H:i:s');

    $f = file_get_contents($url);
    //$f = iconv("WINDOWS-1250", "UTF-8", $f);
    if (!$f)
    {
    echo 'Nelze načíst - ' . $url ;
    return;
    }


    // ulozime
    file_put_contents("./cache/".md5($url), $f);
    }

    // nacteme tabulku
    $table = file_get_contents("./cache/".md5($url));
    $tr = file_get_contents("./cache/".md5($url));

    preg_match('~(.+?)~s', $table, $out);

    $html = ''.$out1.'';
    $html = preg_replace("/\(.*)\/iU", "$2", $html);

    return $html;



    }
    ?>
    Jednoduše nevím, co mám vepsat do
    $table = preg_match("~
    Prosím nevíš co s tím? musí se jen přepsat určitě pro jejich kód, aby to mělo z čeho generovat, ale nevím co tam dát.
    #149 reagovat RomanJanko:
    [148] Robomysicka Je to tenhle kód (který je v komentářích, hledej příště lépe!).

    http://backup.rjwebdesign.cz/examples/parser13/source.php
    Díky moc, jsem to přehlédl.
    #151 reagovat liborek:
    Lze prosím pomoct s vytvořením této tabulky

    http://vysledky.lidovky.cz/soutez.php?id_soutez=7430

    do takové formátu jako mám na webu?

    http://www.fotbalstudenka.cz/muzi/tabulka

    díky
    [151] liborek
    Skript na vyzobávání z lidovek tu byl několikrát, pohledej v komentářích.
    #153 reagovat liborek:
    [152] RomanJanko
    Sice jsem našel 89, ale odkazy jsou neplatné ...
    Ahoj,
    skript pro lidovky psal mě
    RomanJanko : 17.02.14 13:52

    Mám však jinou prosbu, prosím jen o radu, jaký řádek připsat do skriptu přitom, když stránky lidovek nefungují,v tu chvíli mi to udělá bordel na stránkách.

    Obsah z tabulky se v tu chvíili samozřejmě nemá z čeho načíst a tabulky se mi poté rozhodí.

    Předem dík za radu.
    Ahoj,
    prosím, pouze o přeposlání kódu pro

    http://nv.fotbal.cz/domaci-souteze/kao/pardubicky/pardubice/souteze.asp?soutez=532A1A

    zpracuji si ho poté, ale tady bohužel žádný odkaz nefunguje.
    Předem děkuji.
    #156 reagovat pan X:
    [155] Robomysicka no jo.. "hledám hňupa, co udělá veškerou práci za mě" bez nároku na finanční odměnu.
    Zdravím používám tvůj php kod konkrétně na ofisport. Potřeboval bych to php pomoct upravit, tak aby tam nenačetl taky ten skript z google reklamy, než se to uloži.
    Diky
    #158 reagovat Roman Janko:
    [157] kolapa Jaký kód konkrétně?
    [158] Roman Janko code.rjwebdesign.cz/examples/parser2/source.phps

    Tady je moje tabulka:
    skvelkealbrechtice.wz.cz/novy1.php
    Když se divám na zdrojak, tak ukládám dvě tabulky. První tu co potřebuji, pak nějakou prázdnou a pak ten skript. Potřeboval bych to ošetřit, ať se ukládám jen ta, co potřebuji.

    #160 reagovat Roman Janko:
    [159] kolapa Jakou adresu se snažíš parsovat?
    [160] Roman Janko http://server2.ofisport.cz/svaz_nj/apl.asp?ind=2&sou=2&radku=0&zo=2
    #162 reagovat Roman Janko:
    [161] kolapa Tak si přidej na konec skriptu tohle

    $ourTable = preg_replace("!.+!s", "", $ourTable);
    #163 reagovat Roman Janko:
    Oprava -> http://pastebin.com/iRqwuuVd
    Než jsem dopsal příspěvek, tak jsem na to přišel...
    Kdo používá jinačí kódování než UTF-8, tak tady je převod do windows-1250

    $ourTable = iconv('UTF-8', 'windows-1250', $ourTable);
    (před uložením)
    Poslední dotaz, jak vyznačit sloupec nebo řádek v tabulce tučně, podle názvu řádku či sloupce. Konkrétně potřebuji podle názvu týmu. Ale zajímal by mě i sloupec.
    Narvat do řádku nějaký id nebo přes podmínku jsem zkoušel, ale nevyšlo to.
    Opet jsem se dostal k tvoreni webu a mam problem s tabulkou z ciziho webu.
    http://pastebin.com/LD9bBwgQ
    Zde mam tvuj kod jen bych potreboval odstranit posledni sloupec. Sosam to z ofisportu. Priklad je na mojem webu. jedna se o 2 a 3 tabulku.
    Diky za kazdou radu.
    http://www.skvelkealbrechtice.wz.cz/tabulka.zaci.2014-2015.php
    Dobrý den,
    můžete mi prosím poradit, jak parsovat tabulky z nového webu fotbal.cz? Konkrétně třeba tabulku "celkem" z tohoto odkazu...
    https://souteze.fotbal.cz/turnaje/table/4919
    Díky
    [168] Milan Můžu, ale zkusil jsi si otevřít nějaký stávájící parser a upravit ho o novou strukturu fotbal.cz?

    Ukázka: http://code.rjwebdesign.cz/examples/parser22/
    Kód: http://code.rjwebdesign.cz/examples/parser22/source.php
    Právě že zkusil a nešlo mi to, ale teď už vidím, kde byla chyba... Moc děkuju
    Prosím tě, kolego, zase problém... server Fotbal.cz asi nějak změnil web, podařilo se mi z adresy (https)://souteze.fotbal.cz/turnaje/homepage/950 vydolovat Tabulku, ale ne již aktuálně odehrané a následující zápasy. Děkuji moc.
    #172 reagovat Radek:
    Připojuji se k příspěvkům výše, bylo by super zobrazit nový parser na nový web fotbal.cz. Díky moc předem
    [172] Radek Viz [169] Roman Janko


    [171] Alda Není tvořenou klasickou tabulkou, ale divy (element DIV), musí se najít nadpis odehrané nebo nejbližší a pak postupovat směrem dolů k poslednímu zápasu. Tohle se už bude dělat přes regexpy špatně, bylo by vhodné to dělat přes DOM nebo SIMPLEDOM knihovnu, v parserech to tady taky nekde je. Zkuste to sami a když nebudete vědět napíšu. Rád bych viděl nějakou snahu a nějaký kód něž jen prostý povel napiš
    [173] Roman Janko Tak to jsem nahranej... umím max. změnit parametr v URL aby to bralo správnej tým.

    Vložit nový komentář


    • na jiné komentáře odkazujte pomocí odkazu reagovat
    • vaše IP adresa bude zaznamenána
    • používají se gravatary
    • můžeme si tykat
    • HTML tagy vypnuty. PHP kód se také neprovede. Pokud potřebuju přiložit ukázku vašeho kódu, použijete službu pastebin
    • vulgární, rasistické či jinak nepřípustné komentáře budou smazány