Я извлекаю HTML из Selenium, а затем извлекаю данные из HTML с помощью Xpaths.
Это Xpath:
/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a
Это мой код:
$data = $webdriver->getPageSource();
d($data, $urltemplate);
$doc = new DOMDocument();
$doc->loadHTML($data);
$xp = "/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a";
$xpatho = new DOMXpath($doc);
$elementsn = $xpatho->query($xp);
d(get_class($elementsn),$elementsn->count(),$xp,$name);
// d() is a custom function like var_dump().
Я всегда получаю $ elementsn-> count () = 0.
Это $ data:
https://pastebin.com/ahuvkJfN
Я пытаюсь извлечь такие строки, как «NAD M10 BLUOS ...», «NAD M12 DIRECT DIGITAL ...» и так далее ...
Я сохранил HTML в файл , и открыл его в моем браузере. Я прилагаю снимок экрана с данными, которые я хотел получить (выделены синим):
По сути, страница HTML представляет собой список продуктов, и я ищу извлеките все названия продуктов. Для подтверждения я использовал Chrome инструменты разработчика и функцию копирования полного Xpath. У меня есть следующие Xpaths для некоторых названий продуктов:
/html/body/div[2]/div[1]/div/div/div/div/ul/li[1]/div[1]/h3/a
/html/body/div[2]/div[1]/div/div/div/div/ul/li[3]/div[1]/h3/a
Я предполагаю, что это будет обобщать на:
/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a
Однако я продолжаю получать DOMNodeList с count = 0. Почему это так и как я могу проверить, в чем заключается ошибка?
PS: Это исходная веб-страница: http://lenbrook.com.sg/3-shop-by-brand# / page-4 / price-49-8667