Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML] Wczytywanie tylko diva z innej strony
Niepokonany13
post 26.05.2018, 20:37:50
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2018

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


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

Ten post edytował Niepokonany13 26.05.2018, 20:38:53
Go to the top of the page
+Quote Post
SmokAnalog
post 27.05.2018, 11:31:20
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Ś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ę.
Go to the top of the page
+Quote Post
Niepokonany13
post 27.05.2018, 12:52:29
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2018

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


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;
Go to the top of the page
+Quote Post
SmokAnalog
post 27.05.2018, 13:04:02
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
Niepokonany13
post 27.05.2018, 13:07:51
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2018

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


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;
Go to the top of the page
+Quote Post
SmokAnalog
post 27.05.2018, 13:30:53
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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:

Go to the top of the page
+Quote Post
Niepokonany13
post 27.05.2018, 16:39:07
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2018

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


Dzięki za pomoc
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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 23:55