Получение "скрытых элементов" с помощью простого веб-скребка DomDocument - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь собрать некоторые данные с веб-сайта, где есть список значений с его подсписками.Тем не менее, подсписки скрыты, пока я не нажму на них.

Я могу легко получить исходные элементы списка, используя DomDocument и Xpath, но не подсписки.

Я думаю, что подсписки скрыты с помощью Javascript иЯ не знаю, как имитировать клики таким образом.

Как получить все значения списка ??

Вот картинка, которую вы должны понять:

Problem explanation throug picture

Веб-сайт: http://www.econodata.com.br/lista-empresas/MINAS-GERAIS/BICAS

Текущий код:

$mpd = new DOMDocument();
$mainpage = "http://www.econodata.com.br/lista-empresas/MINAS-GERAIS/BICAS";
$mpd->loadHTML((new simple_html_dom())->load(collect_file($mainpage)));
$mpdXpath = (new DOMXPath($mpd));
foreach($mpdXpath->query('//div/ul/li/span') as $topicNode){
    echo $topicNode->textContent;
    echo "<br>";
}

Ожидаемый результат - все подсписки (буквенные числа, такие как H49, H-492 и т. Д., А не только E, F, G, H ...)

1 Ответ

0 голосов
/ 21 ноября 2018

все элементы имеют одинаковый класс parent

<span style="float: left !important;" class="parent">A - AGRICULTURA,....</span>

извлекать, используя xpath //span[@class="parent"]

, но если вы также хотите извлечь URL

foreach($mpdXpath->query('//span[@class="parent"]/..') as $topicNode){
    $title = $topicNode->getElementsByTagName('span')[0];
    $href = $topicNode->getElementsByTagName('a')[0];
    echo $title->textContent;
    echo "<br>";
    echo "http://...." . $href->getAttribute('href');
    echo "<br>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...