Autor | Zpráva | ||
---|---|---|---|
PetrX Profil * |
#1 · Zasláno: 15. 10. 2009, 09:49:45
Potřebuji poradit jak na rozložení HTML souboru respektive získání potřebných dat. Samotný soubor jsem schopen automaticky stáhnout a teď z něj potřebuji získat data.
Příklad HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title> Geocaching - Trackable Items - Search </title> ...... <table width="100%" cellpadding="3" cellspacing="0" border="0"> <tr> <td valign="top" align="left" height="16"></td> <td valign="top" align="left" height="16"><strong>Name</strong></td> <td valign="top" align="left" height="16"><strong>Last Log</strong></td> </tr> <tr> <td valign="top" align="left" height="16"></td> <td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/> <a href="http://www.geocaching.com/track/details.aspx?id=1716957">Oakcoins Oak Leaf Geocoin</a></td> <td valign="top" align="left" height="16">10/4/2009 </td> </tr> .... </body> </html> Já potřebuji získat jen řádky tabulky (je jich samozřejmě více, ale pro případ postačuje jedna) <td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/> <a href="http://www.geocaching.com/track/details.aspx?id=1716957">Oakcoins Oak Leaf Geocoin</a></td> Potažmo z ní potřebuji jen název obrázku, odkaz a název v odkazu. Umí někdo poradit či nasměrovat jak toto udělat? |
||
Joker Profil |
#2 · Zasláno: 15. 10. 2009, 09:59:54
PetrX:
Jestli ta stránka má pevnou strukturu a tohle je jediná tabulka na ní (resp. jde jednoznačně identifikovat), šlo by na to napsat regulární výraz. |
||
PetrX Profil * |
#3 · Zasláno: 15. 10. 2009, 10:04:59
Ano, stránka má vždy stejnou strukturu, jen údaje v tabulce se pochopitelně mění.
Regulární výraz mě také napadl, ale nevím jak do toho. Můžeš prosím trochu poradit? Nikdy mi moc nešli a většinou to byly prasárny, které fungovali, ale strašně zatěžovali server. |
||
Joker Profil |
#4 · Zasláno: 15. 10. 2009, 10:26:22
PetrX:
No jestli má být výsledkem vnitřek řádků tabulky a tabulka je na stránce jen jedna, měl by stačit i jednoduchý výraz: /<tr>(.*?)</tr>/si |
||
PetrX Profil * |
#5 · Zasláno: 15. 10. 2009, 10:37:10
Bohužel na stránce je více tabulek, ale stejnak zatím nechápu jak pomocí regulárního výrazu získám jen ty patřičné řádky, který příkaz mám použít. Je to pro mě nějak nepochopitelné.
|
||
Joker Profil |
#6 · Zasláno: 15. 10. 2009, 11:00:52
PetrX:
„jak pomocí regulárního výrazu získám jen ty patřičné řádky“ Které "patřičné"? Zatím byla řeč o „potřebuji získat jen řádky tabulky“, tj. mám za to, že všechny řádky. „Bohužel na stránce je více tabulek“ A čeho by se mohl skript chytit, aby dokázal určit tu správnou? |
||
PetrX Profil * |
#7 · Zasláno: 15. 10. 2009, 11:22:29
Celý obsah html je ZDE.
|
||
PetrX Profil * |
#8 · Zasláno: 15. 10. 2009, 11:35:30
Myslel jsem získat tu buňku tabulky co jsem uvedl v prvním příspěvku. Špatně jsem se vyjádřil, omlouvám se.
|
||
Error404 Profil |
#9 · Zasláno: 15. 10. 2009, 17:11:55
<? include'predek.php' ?> $informace_s_promennou_kterou_chces_zobrazovat = '<td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/>'; <? echo $informace_s_promennou_kterou_chces_zobrazovat ?> <? include'konec.php' ?> jednoduché ne ? |
||
Joker Profil |
#10 · Zasláno: 15. 10. 2009, 17:23:48
Error404:
Eh? PetrX má právě problém, jak získat obsah do toho $informace_s_promennou_kterou_chces_zobrazovat :) Čili tohle moc neřeší jeho problém. PetrX: Takže- jak zní podmínka pro to, která buňka se má vybrat? |
||
PetrX Profil * |
#11 · Zasláno: 16. 10. 2009, 08:19:31
Asi bych svůj požadavek měl specifikovat přesněji a konkrétněji. Mám stažené tuto stránku http://www.geocaching.com/track/search.aspx?uid=68f06dca-b4c0-40f0-a0ad-6f38ec8b5558 (zdrojový kód je jasný). Z této stránky potřebuji získat buňky tabulky, ve kterých je adresa obrázku (ikony), odkaz na položku a název položky. Je to tento typ řádku:
<td valign="top" align="left" height="16"><img src="../images/wpttypes/sm/1195.gif" align="absmiddle"/> <a href="http://www.geocaching.com/track/details.aspx?id=1716957"> Oakcoins Oak Leaf Geocoin</a></td> Vyskytuje se na stránce několikrát (pochopitelně v obměněné podobě) a já bych je rád automaticky vybral pro další používání. Doufám, že jsem posal svůj problém již přesněji. |
||
Alphard Profil |
#12 · Zasláno: 16. 10. 2009, 22:03:53
<?php $zdroj = file_get_contents("http://www.geocaching.com/track/search.aspx?uid=68f06dca-b4c0-40f0-a0ad-6f38ec8b5558"); preg_match_all('~<td valign="top" align="left" height="16"><img src="([^"]+)" align="absmiddle"/> <a href="([^"]+)">(.+)</a></td>~isU', $zdroj, $out); ?> <xmp> <?php print_r($out); ?> </xmp> |
||
PetrX Profil * |
#13 · Zasláno: 17. 10. 2009, 13:55:51
Moc děkuji za pomoc. Je to přesně to co jsem chtěl. Ani jsem nečekal přesné řešení.
|
||
Časová prodleva: 15 let
|
0