Fatal error: Call to a member function find() on boolean in w PHP Simple HTML DOM Parser

0

Witam, korzystam z simple_html_dom.php (strona: http://simplehtmldom.sourceforge.net) do odczytywania danych ze strony. Dostaje błąd:

Fatal error: Call to a member function find() on boolean in line:

w lini:

$title= $html->find("div div div h1", 0)->plaintext;

dla wyszukiwania w sklepie banggood.com. Korzystałem z poniższego kodu do tej pory i wszystko działało, a tu nagle przestało działać ;/ dla innych sklepów typu gearbest.com lub aliexpress.com skrypt działa.

require('simple_html_dom.php');
$url = 'https://www.banggood.com/Honana-BX-192-Silicone-Drain-Stopper-Hair-Catche-r-2-in-1-Deodorant-Sink-Bathtub-Floor-Drain-Protecto-p-1151223.html';

if (!empty($url)) {
   $html = file_get_html($url);
   var_dump($html);

   $title= $html->find("div div div h1", 0)->plaintext;
   $price= $html->find("div div div div div div.now", 0)->plaintext;

   foreach($html->find('div div div div div.left_largerView_image_20161213 img') as $image)
   $image1 = $image->src ;

   echo $title;
   echo $price;
   echo $image1;
}

Funkcja:

var_dump($html);

dla banggood.com zwraca:

bool(false)

natomiast dla gearbest.com zwraca:

object(simple_html_dom)#2 (23) { ["root"]=> object(simple_html_dom_node)#4 (9) { ["nodetype"]=> int(5) ["tag"]=> string(4) "root" ["attr"]=> array(0) { } ["children"]=> array(2) { [0]=> object(simple_html_dom_node)#5 (9) { ["nodetype"]=> int(6) ["tag"]=> string(7) "unknown" ["attr"]=> array(0) { } ["children"]=> array(0) { } ["nodes"]=>

Co może być przyczyną że tak nagle powyższy kod przestał działać dla banggood.com?

0

Przyczyna wydaje się być oczywista. Zmieniła się struktura tamtej strony. Podejrzyj jak wygląda jej aktualny html.

0
ekhart napisał(a):

Przyczyna wydaje się być oczywista. Zmieniła się struktura tamtej strony. Podejrzyj jak wygląda jej aktualny html.

struktura strony jest taka sama jak ostatnio z tego co zauwazylem, ale problem jest w tym, że nie chce jej pobierac i $html dla banggood zwraca false

1

Dziwne, sprawdziłem Twój kod i zwraca mi link do obrazka. Może za zbyt częste parsowanie ich strony dostałeś jakiegoś bana.

Zrzut ekranu 2017-10-19 o 12.02.42.png

Zrzut ekranu 2017-10-19 o 12.02.45.png

Zrzut ekranu 2017-10-19 o 12.02.53.png

0
axelbest napisał(a):

Dziwne, sprawdziłem Twój kod i zwraca mi link do obrazka. Może za zbyt częste parsowanie ich strony dostałeś jakiegoś bana.

Zrzut ekranu 2017-10-19 o 12.02.42.png

Zrzut ekranu 2017-10-19 o 12.02.45.png

Zrzut ekranu 2017-10-19 o 12.02.53.png

Dzieki właśnie widze że juz działa, dziwne. Możliwe, że masz racje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1