Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Wczytywanie tylko diva z innej strony
Forum PHP.pl > Forum > Przedszkole
Niepokonany13
Witam
Mam problem ponieważ chce wyświetlić tylko 1 diva ze strony dajmy na to że to ceneo
Pobieram sobie stronę
  1. $url = "https://www.ceneo.pl/;szukaj-" . $_GET['sf'];
  2. $zawartosc = file_get_contents($url);

I teraz mam problem z wyświetleniem 1 diva ze strony
Chce wyświetlić wszystko w środku diva
  1. <div class="page-tab-content products">
  2. ...
  3. </div>

Teraz pytanie jak to zrobić potrzebuje najlepiej kawałka kodu bo mam mało czasu na dokończenie tego
SmokAnalog
Ściągnij sobie phpQuery i po rozpakowaniu zrób tak:

  1. require 'phpQuery-onefile.php';
  2.  
  3. $html = file_get_contents('https://www.ceneo.pl/' . urlencode(';szukaj-' . $_GET['sf']));
  4.  
  5. $productsHTML = phpQuery::newDocument($html)['.page-tab-content']->html();


Uważaj, bo z jakiegoś powodu Ceneo czasem wypluwa jakąś ogólną stronę zamiast wyników wyszukiwania, więc jak nie widzisz produktów, to spróbuj jeszcze raz za chwilę.
Niepokonany13
Nic w ogóle nie wyświetla
  1. require 'phpQuery-onefile.php';
  2.  
  3. $html = file_get_contents('https://www.ceneo.pl/' . urlencode(';szukaj-' . $_GET['sf']));
  4.  
  5. $productsHTML = phpQuery::newDocument($html)['.page-tab-content products']->html();
  6. echo $productsHTML;
SmokAnalog
Bo ma być tak jak zrobiłem, czyli ".page-tab-content", a nie ".page-tab-content products". Twój selektor szuka elementów <products> wewnątrz elementów o klasie "page-tab-content", a nie o to Ci chodziło. Poszperałem w drzewie Ceneo i wystarczy, że oprzesz się o klasę "page-tab-content". Klasa "products" ma dwa elementy o zupełnie innym zastosowaniu, więc nie pasuje. Ewentualnie ".page-tab-content.products", czyli szukanie elementu o dwóch klasach naraz.
Niepokonany13
Też nie działa
  1. require 'phpQuery-onefile.php';
  2.  
  3. $html = file_get_contents('https://www.ceneo.pl/' . urlencode(';szukaj-' . $_GET['sf']));
  4.  
  5. $productsHTML = phpQuery::newDocument($html)['.page-tab-content']->html();
  6. echo $productsHTML;
SmokAnalog
U mnie też teraz Ceneo nie zwraca listy produktów. Wcześniej próbowałem zrobić tak jak ktoś w tym pytaniu zasugerował: https://stackoverflow.com/questions/1975461...answer-38720392

Ale też czasami mi nie zwracało produktów. Być może trzeba pokombinować z nagłówkami HTTP, żeby Ceneo zawsze podawało wyniki wyszukiwania.

Tutaj dowód, że ten kod czasami działa:

Niepokonany13
Dzięki za pomoc
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.