Witam
Mam problem ponieważ chce wyświetlić tylko 1 diva ze strony dajmy na to że to ceneo
Pobieram sobie stronę
$url = "https://www.ceneo.pl/;szukaj-" . $_GET['sf']; $zawartosc = http://www.php.net/file_get_contents($url);
<http://december.com/html/4/element/div.html class="page-tab-content products"> ... </http://december.com/html/4/element/div.html>
Ściągnij sobie https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/phpquery/phpQuery-0.9.5.386-onefile.zip i po rozpakowaniu zrób tak:
require 'phpQuery-onefile.php'; $html = http://www.php.net/file_get_contents('https://www.ceneo.pl/' . http://www.php.net/urlencode(';szukaj-' . $_GET['sf'])); $productsHTML = phpQuery::newDocument($html)['.page-tab-content']->html();
Nic w ogóle nie wyświetla
require 'phpQuery-onefile.php'; $html = http://www.php.net/file_get_contents('https://www.ceneo.pl/' . http://www.php.net/urlencode(';szukaj-' . $_GET['sf'])); $productsHTML = phpQuery::newDocument($html)['.page-tab-content products']->html(); http://www.php.net/echo $productsHTML;
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.
Też nie działa
require 'phpQuery-onefile.php'; $html = http://www.php.net/file_get_contents('https://www.ceneo.pl/' . http://www.php.net/urlencode(';szukaj-' . $_GET['sf'])); $productsHTML = phpQuery::newDocument($html)['.page-tab-content']->html(); http://www.php.net/echo $productsHTML;
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/how-to-get-file-get-contents-to-work-with-https#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:
Dzięki za pomoc
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)