Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> simple html dom
qoqo
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 5.06.2014

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


Witam.

Chcę zrobic bazę danych tytułów filmów z różnych serwisów..

Mam taki kod:

  1.  
  2. <?php // parser :)
  3. include 'simple_html_dom.php';
  4. $html = file_get_html('http://www.adres.pl');
  5. $data=$html->find("strong[class=title]");
  6. echo $data[0];
  7.  
  8.  
  9. ?>
  10.  


Pobiera mi wiadomo 1 tytuł filmu. Gdybym miał pobrać wszystkie 30 z jednej strony to musiałbym wywoływać $data[1] , $data[2] itd

Na stronie jest 100 stron gdzieś po 30 tytułów na stronie
Chciałbym to zautomatyzować na zasadzie:

Pobiera mi na jednej stronie 30 tytułów później ładuje dane z drugiej strony i tak do samego końca.

Jak się za to zabrać? co będzie potrzebne?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Comandeer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


No w gruncie rzeczy to pętle… i tyle (IMG:style_emoticons/default/wink.gif)

BTW Simple HTML DOM przy bardziej skomplikowanym HTML lubi się tracić - czasami warto zdać się na wbudowany w PHP parser DOM albo jakieś lekkie wrappery na niego.
Go to the top of the page
+Quote Post
qoqo
post
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 5.06.2014

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


więc mam tak:

  1. <?php
  2. $page = 0;
  3. include 'simple_html_dom.php';
  4. $html = file_get_html('http://www.adreswordpressa.pl/page/1');
  5. $title = $html->find("strong[class=title]");
  6. foreach($html->find('ul.pagination li a') as $pagination){
  7. $html2=file_get_html($pagination->href);
  8. foreach ($title as $el) {
  9. print $el . "<br>";
  10. }
  11.  
  12.  
  13. }
  14. $html->clear();
  15. unset($html);
  16.  


pobiera mi w kółko tylko z jednej strony. W jaki sposób zrobić, aby pobierał mi np z 10 stron? tak abym mogł kontrolować to..


paginacja wygląda w html tak:

  1.  
  2. <ul class="pagination">
  3.  
  4. <li></li>
  5. <li>
  6. <a class="inactive" href="http://www.adreswordpressa.pl/page/2">2</a>
  7. </li>
  8. <li>
  9. <a class="inactive" href="http://www.adreswordpressa.pl/page/3">3</a>
  10. </li>
  11.  
  12.  


i tak do 200 stron..

jak to zrobić?

Ten post edytował qoqo 16.06.2015, 13:26:41
Go to the top of the page
+Quote Post
Comandeer
post
Post #4





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


  1. <?php
  2. for($i = 1; $i <= 10; ++$i)
  3. {
  4. $html = file_get_html('http://www.adreswordpressa.pl/page/' . $i);
  5.  
  6. //itd.
  7. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 14:59