Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pobieranie danych przy pomocy PHP Simple HTML DOM Parser
Remik37
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.10.2014

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


Witajcie
mam problem z parsowaniem strony z wykorzystaniem PHP Simple HTML DOM Parser.
Niestety, ale zaciąłem się już na samym początku...

...mam:

  1. require_once('simple_html_dom.php');
  2. $html = file_get_html('https://www.jakasstrona.com/data/get-detail?no=733');



Strona, która została pobrana ma np. taki kawałek:


  1. <td class="size25 bold">Application number</td><td class="size75">011111111</td>
  2. </tr>
  3. <tr>
  4. <td class="size25 bold">Application language</td><td class="size75">en</td>
  5. </tr>
  6. <tr>
  7. <td class="size25 bold">Application date</td><td class="size75">2015-01-01</td>
  8. </tr>
  9. <tr>
  10. <td class="size25 bold">Second language</td><td class="size75">de</td>
  11. </tr>


I teraz potrzebuję pobrać np. "Application number" czyli "011111111", albo "Application date" czyli "2015-01-01"
...jakieś wzkasówki jak przygotować zapytanie w PHP Simple HTML DOM Parser, żeby pobrał takie dane?

Pozdrawiam
R.
Go to the top of the page
+Quote Post
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


a tak?
  1. $html->find('td[class=size75]');
Go to the top of the page
+Quote Post
Remik37
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.10.2014

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


hmm, no tak, ale to chyba pobierze wszystkie elementy "td", które mają class=size75... a będzie ich kilkadziesiąt na stronie.

Zastanawiam się, czy nie zostawić w spokoju PHP Simple HTML DOM Parser i skorzystać z takiego rozwiązania:


  1. $site = 'https://www.jakasstrona.com/data/get-detail?no=733';
  2. $data = file_get_contents($site);
  3. preg_match('[<td class="size25 bold">Application number</td><td class="size75">(.+?)</td>]', $data, $number);
  4. preg_match('[<td class="size25 bold">Application date</td><td class="size75">(.+?)</td>]', $data, $date);


i poźniej dobierać się do tego za pomocą np, echo $number[1];

Tak chyba będzie łatwiej?

Ten post edytował Remik37 8.01.2015, 15:16:40
Go to the top of the page
+Quote Post
rad11
post
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mozesz i tak tez to wykonac
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 Aktualny czas: 19.08.2025 - 18:38