• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Scraping danych, jak się przeiterować przez wszystkie wystąpienia elementów.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
483 wizyt
pytanie zadane 20 grudnia 2015 w PHP przez KULTI Obywatel (1,400 p.)

Witam serdecznie, mam działający kod i chciałbym się przeiterować przez wszystkie wystąpienia. W tym przypadku wszystkie posty na stronie. I byłbym wdzięczny za podpowiedź jak przeiterować się przez wszystkie strony z pytaniami oraz jak połączyć to z javascriptem aby po wejściu na stronę strony się pobierały w czasie rzeczywistym, a nie najpierw pobrały a potem wyświetliły.(gdy będzie się iterować przez wszystkie strony)​.

<?php
require('simple_html_dom.php');

$html = file_get_html('https://forum.pasja-informatyki.pl/questions');

$info['tytul'] = $html->find('.qa-q-item-title a span', 0)->innertext;
$info['opis'] = $html->find('.qa-q-item-title a span', 0)->title;
$info['user'] = $html->find('.qa-user-link', 0)->innertext;

echo '<b>TYTUŁ:</b> '.$info['tytul'];
echo '<br><br>';
echo '<b>OPIS:</b> '.$info['opis'];
echo '<br><br>';
echo '<b>USER:</b> '.$info['user'];


 

4 odpowiedzi

+3 głosów
odpowiedź 20 grudnia 2015 przez Comandeer Guru (606,240 p.)

NIE UŻYWA SIĘ SIMPLE DOM HTML - TO POWOLNY, BEZUŻYTECZNY STAROĆ!!!

Symfony udostępnia od tego odpowiednie komponenty: DOMCrawler + CSSSelectors. Można to wykorzystać do stworzenia prostego Scrapera: https://github.com/Auditr/Scraper

Ponadto w PHP jest wbudowany DOM + XPath, co wystarcza aż nadto.

komentarz 20 grudnia 2015 przez KULTI Obywatel (1,400 p.)
Powolny, ale działa. Dzięki za rade, lecz uczę się php i cieszy mnie coś co mogę zrobić łatwo i daje ciekawy rezultat. Co do szybkości, zauważyłem że nie jest powalająca.
​Byłbym wdzięczny za pomoc z tym o co pytałem. I ewentualnie pokazanie kodu dużo szybszego w zwykłym php działającego identycznie. :)
komentarz 20 grudnia 2015 przez Comandeer Guru (606,240 p.)
Popatrz sobie do manuala PHP, do opisu DOM - tam są ciekawe przykłady.

Jutro Ci podeślę przykład z tym moim Scraperem.
komentarz 21 grudnia 2015 przez KULTI Obywatel (1,400 p.)
Dobrze, z chęcią przetestuje i uwagi oczywiście wezmę do Siebie. Mnie osobiście potrzebny byłby taki który załatwia wiele spraw za Ciebie, coś jak request w python'ie. A do tego możliwie szybki. :)
​Mam problemy z xpath i css selector ścieżką i dlatego początkowo ten jest całkiem ciekawy, lecz widzę że tylko scrping można w nim wykonywać. Czekam na odpowiedź comandeer. :)
0 głosów
odpowiedź 21 grudnia 2015 przez KULTI Obywatel (1,400 p.)
<?php
require('simple_html_dom.php');

    $html = file_get_html('https://forum.pasja-informatyki.pl/questions');


    $info['tytul'] = $html->find('.qa-q-item-title a span')->innertext;
    $info['opis'] = $html->find('.qa-q-item-title a span', 0)->title;
    $info['user'] = $html->find('.qa-user-link', 0)->innertext;

    echo '<b>TYTUŁ:</b> ' . $info['tytul'];
    echo '<br><br>';
    echo '<b>OPIS:</b> ' . $info['opis'];
    echo '<br><br>';
    echo '<b>USER:</b> ' . $info['user'];

    while($txt = $info['tytul']){
        print_r($txt);}

 


​dlaczego ten kod nie działa. Tz opis, user działają bo wskazuje im pierwszą występującą wartość, a w 'tytul' usunąłem to i spróbowałem się przeiterować. Jednak nic nie pokazuje, dlaczego?

0 głosów
odpowiedź 21 grudnia 2015 przez KULTI Obywatel (1,400 p.)
Będę wdzięczny za pomoc. :) 
komentarz 21 grudnia 2015 przez Comandeer Guru (606,240 p.)
Człowieku, weź nie spamuj... Napiszę Ci ten przykład, jak będę mieć wolną chwilę. Poza ty w dokumentacji PHP odnośnie DOM serio jest sporo przykładów - w treści i w komentach. http://php.net/DOM
0 głosów
odpowiedź 25 grudnia 2015 przez KULTI Obywatel (1,400 p.)
Więc czy ktoś zna odpowiedź? Jak wywołać wszystkie wystąpienia a nie tylko jedno? :)
komentarz 25 grudnia 2015 przez efiku Szeryf (75,160 p.)

Do tej pory wraz z dokumentacją napisałbyś własny i to bez problemu z  http://php.net/DOM albo znalazł jakąś lepszą bibliotekę, taką bardziej na czasie.

Zero wysiłku.. Szkoda, że teraz nikt nie chce się choć trochę wysilić aby coś osiągnąć. To naprawdę smutne.

Mam nadzieję, że Comandeer da Ci taki kod, który będzie tłumaczył, a nie był tylko do Copy & Paste.

Podobne pytania

+1 głos
1 odpowiedź 378 wizyt
+1 głos
1 odpowiedź 346 wizyt
0 głosów
5 odpowiedzi 1,684 wizyt
pytanie zadane 3 października 2022 w Offtop przez nielotweb Bywalec (2,240 p.)

93,160 zapytań

142,172 odpowiedzi

321,895 komentarzy

62,489 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 453p. - Marcin Putra
  2. 453p. - dia-Chann
  3. 447p. - Łukasz Piwowar
  4. 443p. - CC PL
  5. 431p. - Łukasz Eckert
  6. 428p. - rafalszastok
  7. 423p. - Michal Drewniak
  8. 423p. - Adrian Wieprzkowicz
  9. 418p. - rucin93
  10. 410p. - Piotr Aleksandrowicz
  11. 408p. - ksalekk
  12. 402p. - Mariusz Fornal
  13. 401p. - Dawid128
  14. 383p. - Hubert Chęciński
  15. 340p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...