Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Simple HTML PHP Parser
Forum PHP.pl > Forum > PHP
kubapi
Witam! Mam problem z pobieraniem treści z innej strony. Robię to za pomocą Simple HTML PHP Parser. Oto mój kod:
  1. <?php
  2. include_once('simple_html_dom.php');
  3.  
  4. function scraping_IMDB($url) {
  5.  
  6. $html = file_get_html($url);
  7.  
  8. $ret['Tytuł'] = $html->find('title', 0)->plaintext;
  9. $ret['Nazwa'] = $html->find('td td', 0)->plaintext;
  10.  
  11.  
  12.  
  13. $html->clear();
  14. unset($html);
  15.  
  16. return $ret;
  17. }
  18. // -----------------------------------------------------------------------------
  19. $ret = scraping_IMDB('http://www.90minut.pl/liga/0/liga5618.html');
  20.  
  21. echo "<table>" ;
  22. foreach($ret as $k=>$v)
  23.  
  24.  
  25. echo "<tr><td> $k </td><td> $v </td><tr>";
  26. "</table>"
  27. ?>

Tytuł pobiera jednak nie wiem jak mam pobrać np. kolumnę Nazwa czy też coś innego z tej strony. Proszę o pomoc.
by_ikar
Musisz sobie podejrzeć źródło strony i odpowiednio "poruszać" się po nim, pobierając interesujące cię informacje. To jest tak jak z css, jak chcesz jakiś dany element wyróżnić poprzez pogrubienie, to musisz się do niego jakoś dostać. Jak to będzie tylko jakiś ciąg wewnątrz większego ciągu, to już wtedy raczej musisz kombinować z wyrażeniami regularnymi. Tak czy inaczej to nie jest specjalny problem o ile się mniej więcej zna css, a raczej zasadę jego działania wink.gif
kubapi
Czyli mam np. tak:
  1. <td align="left">&nbsp;<a href="/skarb.php?id_klub=273&id_sezon=79" class="main">Piast Gliwice</a></td>

I jak zrobić żeby zadziałało? Co trzeba wpisać?
  1. $ret['Nazwa'] = $html->find('td td', 0)->plaintext;

Rozumiem żę trzeba zmienić to co jest w nawiasie czyli: ('td td', 0). Tylko co tam trzeba dać?
tolomei
Witaj.

Simple HTML DOM Parser to narzędzie, które na wejście otrzymuje cały dokument html bądź jakąś jego część.
Aby znaleźć sposób na dotarcie do jakiegoś wewnętrznego znacznika, czy atrybutu należy sprawę rozpatrywać w odniesieniu do całego drzewa DOM na wejściu.
Podaj adres strony, bądź wrzuć na forum cały dokument, który przeszukujesz.

Na marginesie, pamiętaj, aby przed rozpoczęciem zapisywania danych do zmiennej, najpierw ją inicjować. Na początku Twojej funkcji dodaj taką linijkę:
  1. $ret = array();


Pozdrawiam.
Fifi209
Znacznie prościej użyć PHPQuery ;-)
kubapi
To jest link do strony, chodzi mi o wyciągnięcie tabeli. Strona Czuje że to wszystko mnie przerosło, zobaczę jeszcze na PHP Query jak napisał Fifi209.
by_ikar
Cytat(Fifi209 @ 16.04.2012, 16:55:40 ) *
Znacznie prościej użyć PHPQuery ;-)

Akurat Simple HTML PHP Parser jest równie łatwo użyć co phpQuery, bo oba działają podobnie, aczkolwiek w phpQuery jest kilka rzeczy które są bezpośrednio z jquery "wyciągnięte". Co nie znaczy że tego samego efektu przy obu klasach nie da się osiągnąć. Różnica polega na tym że phpquery jest znacznie wolniejszy i bardziej zasobożerny a jego dokumentacja jest średnia i trzeba się posiłkować dokumentacją jquery.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.