Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Parsowanie tekstu z HTML, ściąganie wartości tabeli z zewnętrznej strony
jooni22
post 13.07.2016, 12:33:58
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.07.2011

Ostrzeżenie: (0%)
-----


Witam,
piszę mały skrypt w PHP, a że dopiero się uczę to potrzebuję pomocy. Skrypt mianowicie ma parsować różne wartości ze strony zewnętrznej i je wyświetlać na mojej a potem dorzucę jakieś operacje na tych wartościach, ale na początku się zawiesiłem w parsowaniu.
<tr><td>wartosc1</td><td>72.9</td></tr><tr><td>wartosc 2</td><td>105.9</td><tr><td>Data</td><td>22-12-16</td></tr><tr><td>pogoda</td><td>zła</td>
Na stronie jest pełno tr i td a mnie interesują tylko, niektóre wartości, w jaki sposób wyciągnąć wartości po zawartości tekstu?.
Np. skrypt szuka gdzie na stronie znajduje się wartość1 i ściąga wartość z kolumny obok albo cała tabele, lub wiersz/klumnę, zaś pomija tabele z datą i pogodą.
Po tagach tego nie wyciągnę, ponieważ tagi nie posiadają klas, chyba że wyliczyć który tag <td> posiada tekst wartość1 i wtedy go ściągnąć, ale nie wiem czy to dobre rozwiązanie ?.
Go to the top of the page
+Quote Post
mlawnik
post 13.07.2016, 13:55:26
Post #2





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


Jeżeli struktura tabeli się nie zmienia, to można wyliczyć.
Polecam bibliotekę simplehtmldom.
(Jest na sourceforge: simplehtmldom.sourceforge.net, ale w tej chwili sourceforge ma problemy jakieś.)

Można też np. w inspektorze chrome kliknąć prawym i dać "copy XPath".

Ten post edytował mlawnik 13.07.2016, 14:01:04


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
jooni22
post 13.07.2016, 14:10:40
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.07.2011

Ostrzeżenie: (0%)
-----


Znalazłem rozwiązanie
  1. $doc = new DOMDocument();
  2. $doc->loadHTML($YOUR_HTML);
  3. $xpath = new DOMXpath($doc);
  4. $lis = $xpath->query("//li/text()");
  5. if (!is_null($lis)) {
  6. foreach ($lis as $li) {
  7. if (preg_match('~^Value: (.+?)$~', $li->nodeValue, $m)) {
  8. print_r($m);
  9. }
  10. }
  11. }
Go to the top of the page
+Quote Post
mlawnik
post 13.07.2016, 14:17:06
Post #4





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


DOMDocumentem też można. wink.gif

Chwali się twoje google-fu wink.gif


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 00:31