Разбор несовместимого HTML с PHP, DOMXpath - PullRequest
0 голосов
/ 04 июля 2019

У меня есть несколько веб-страниц, с которых мне нужно почистить / разобрать данные. Структура страниц непротиворечива, но изменчива, и после многих часов у меня не получилось поместить данные в массив.

Вот пример HTML:

<div class="cc">
    Explore the use of simple 
    <a class="keyword_w_elaboration">technologies</a>
    <div class="elaboration" style="text-decoration:none">
        <div class="elaboration_controls"></div>
        <div class="elaboration_content">
            <div class="keyword_elaboration_title">technologies</div>
            things that extend human abilities (e.g., axe) &nbsp;
        </div>
    </div> 
    to extend their abilities
</div>  

Что я хочу сделать, это получить текст после <div class = "cc"> (есть сотни этих div с именем класса cc)

ТЕКСТ, КОТОРЫЙ Я НУЖЕН: Изучите использование простых технологий для расширения своих возможностей

ПРОБЛЕМЫ:

  1. Есть ссылки <a class="keyword_w_elaboration">hover over me</a> чтобы при наведении всплыло определение / разработка этого слова или фразы.
  2. В каждом из них может быть одна или несколько этих «разработок», и они могут быть где угодно в тексте (от начала до конца).
  3. Мне нужно присоединиться к слову <a class="keyword_w_elaboration"> или Фраза к тексту.
  4. Мне нужно следить за разработкой и описанием ее. EX. технологии: вещи, которые расширяют человеческие способности

Вот код:

$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile('https://website.com');
$xpath = new \DOMXpath($dom);

foreach($xpath->query('//div[@class="cc"]') as $cc)
{

    // everything in here I can't get to work correctly
}

Есть идеи?

...