Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] parser html
Forum PHP.pl > Forum > PHP
smiesznylolek
tworzę sobie taki skrypcik który ma wyciągać z ogłoszeń motoryzacyjnych na gumtree takie dane jak marka, model, rodzaj paliwa itp i potem zapisać to do bazy.
Używam PHP Simple HTML DOM Parser tylko mam problem, bo nie do końca wiem jak pobrać dane, bo w niektórych ogłoszeniach tabela jest większa lub mniejsza, bo niektórzy nie podają np. przebiegu, lub jakiś innych danych i w tedy wszystko mi się wali... To mój kod którego wynikiem jest tablica i tak jak pisałem nie mogę sobie poradzić z wyciągnięciem interesujących danych. Prosił bym o jakąś pomoc.

  1. <?php
  2. include_once('simple_html_dom.php');
  3.  
  4. $html = file_get_html('http://krakow.gumtree.pl/c-Samochody-Sprzedam-samochody-osobowe-Ford-focus-2007-r-IGLA-MALUTKIE-SPALANIE-W0QQAdIdZ362692072');
  5.  
  6. $es = $html->getElementById("#attributeTable")->plaintext;
  7.  
  8. $dane = explode(" ",$es);
  9. print_r($dane);


wynik skrypciku:
  1.  
  2. Array ( [0] => [1] => [2] => [3] => [4] => Data [5] => dodania [6] => [7] => [8] => 13/03/2012 [9] => [10] => [11] => [12] => Ostatnio [13] => zmieniony [14] => [15] => [16] => 28/03/2012 [17] => [18] => [19] => [20] => Cena [21] => [22] => [23] => Zł [24] =>  23 [25] => 999,00 [26] => [27] => [28] => [29] => Adres [30] => [31] => [32] => Kraków, [33] => Polska [34] => Pokaż [35] => mapę [36] => [37] => [38] => [39] => [40] => [41] => [42] => Na [43] => sprzedaż [44] => przez [45] => [46] => [47] => Właściciel [48] => [49] => [50] => [51] => Marka [52] => [53] => [54] => Ford [55] => [56] => [57] => [58] => Model [59] => [60] => [61] => Focus [62] => [63] => [64] => [65] => Rok [66] => [67] => [68] => 2007 [69] => [70] => [71] => [72] => Kilometry [73] => [74] => [75] => 139000 [76] => [77] => [78] => [79] => Rodzaj [80] => [81] => [82] => Używany [83] => [84] => [85] => [86] => Typ [87] => nadwozia [88] => [89] => [90] => Hatchback [91] => [92] => [93] => [94] => Skrzynia [95] => biegów [96] => [97] => [98] => Manualna [99] => [100] => [101] => [102] => Układ [103] => napędowy [104] => [105] => [106] => Napęd [107] => na [108] => przednie [109] => koła [110] => [111] => [112] => [113] => Klimatyzacja [114] => [115] => [116] => Tak [117] => [118] => )
tolomei
Niezbyt to wychowawcze, ale tym razem masz na gotowe.

  1. include('simple_html_dom.php');
  2. $ch = curl_init('http://krakow.gumtree.pl/c-Samochody-Sprzedam-samochody-osobowe-Ford-focus-2007-r-IGLA-MALUTKIE-SPALANIE-W0QQAdIdZ362692072');
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. $sss = curl_exec($ch);
  5. curl_close($ch);
  6. $html = new simple_html_dom();
  7. $html->load($sss);
  8.  
  9. $dane = array();
  10. foreach($html->find('table#attributeTable tr') as $trs) {
  11. $a = array();
  12. foreach($trs->find('td') as $tds) {
  13. $a[] = $tds->plaintext;
  14. }
  15. $dane[] = $a;
  16. }
  17. // wybacz mi tego html-a
  18. echo '<html><head><meta charset="utf-8" /></head><body><pre>';
  19. print_r($dane);
  20. echo '</pre></body></html>';


Wynik:
Kod
Array
(
    [0] => Array
        (
            [0] => Data dodania
            [1] =>  13/03/2012
        )

    [1] => Array
        (
            [0] => Ostatnio zmieniony
            [1] =>  28/03/2012
        )

    [2] => Array
        (
            [0] => Cena
            [1] =>  Zł  23 999,00
        )

    [3] => Array
        (
            [0] => Adres
            [1] =>  Kraków, Polska
Pokaż mapę
        )

    [4] => Array
        (
            [0] => Na sprzedaż przez
            [1] =>  Właściciel
        )

    [5] => Array
        (
            [0] => Marka
            [1] =>  Ford
        )

    [6] => Array
        (
            [0] => Model
            [1] =>  Focus
        )

    [7] => Array
        (
            [0] => Rok
            [1] =>  2007
        )

    [8] => Array
        (
            [0] => Kilometry
            [1] =>  139000
        )

    [9] => Array
        (
            [0] => Rodzaj
            [1] =>  Używany
        )

    [10] => Array
        (
            [0] => Typ nadwozia
            [1] =>  Hatchback
        )

    [11] => Array
        (
            [0] => Skrzynia biegów
            [1] =>  Manualna
        )

    [12] => Array
        (
            [0] => Układ napędowy
            [1] =>  Napęd na przednie koła
        )

    [13] => Array
        (
            [0] => Klimatyzacja
            [1] =>  Tak
        )

)


Pozdrawiam.

PS. Poczytaj http://simplehtmldom.sourceforge.net/manual.htm
smiesznylolek
trochę mi pomogło to co zrobiłeś, dorobiłem troszeczkę swojego i gra gitara:) dzięki:)
ale mam jeszcze takie pytanko, bo muszę przeprasować jak najwięcej ogłoszeń z gumtree i w związku z tym zrobiłem tak że jeden parser pobiera mi linki do ogłoszeń i umieszcza w bazie danych, a drugi, ten z postu wyżej pobiera dane ogłoszenia. Czy to dobre rozwiązanie, czy lepiej żeby to się działo równocześnie, czyli link i do linku od razu ogłoszenie? Bo nie wiem dokładnie jak to powinno wyglądać...
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.