Использование Simple Html Dom для извлечения жирного текста из div

Работая над проектом сценария, я буквально потратил последние 4 часа на изучение всего, что я могу — моя голова буквально больше не работает по этому вопросу и действительно нуждается в вашей помощи.

Итак, у меня есть скрипт PHP cURL, который получает данные с веб-сайта. Я могу взять div, у которых есть ID и все такое. Но как я могу получить конкретный текст из DIV, у которого нет идентификатора / класса / или чего-то другого, кроме факта, что это единственный жирный элемент в div?

Вот текст HTML на веб-сайте:

<div class="firststyle"><label for="calculator" class="class-coll-1">
<p class="sr-only">Welcome to the calculator:</p> <b>What is one plus two?</b> </label></div>

То, что я пытаюсь разобрать / извлечь из этой части HTML, это просто текст «Что такое один плюс два?».
Как определить эту конкретную часть, которая будет выбрана?

Единственное, что я могу сейчас сделать, — это проанализировать весь div с помощью следующего скрипта:

$html = str_get_html($response);
$the_question = $html->find('div[class=firststyle]');

Однако при этом получается весь текст, включая ярлык «Добро пожаловать в калькулятор», который мне не нужен.

Возможно ли будет каким-то образом сохранить проанализированные данные в переменную, а затем перейти к этому, используя другой скрипт для извлечения данных из этой переменной?

Или, может быть, я могу сделать что-то вроде:

Найти div с этим идентификатором -> найти жирный текст внутри него

Или, может быть:

Найти div с ID -> вынуть текст «Добро пожаловать в калькулятор»

1

Решение

echo $html->find('.firststyle b', 0)->innertext;
#=> What is one plus two?
0

Другие решения

Если у вас есть HTML-код с веб-сайта, вы можете использовать класс DOMDocument для его анализа.

$html = file_get_contents('http://www.example.com');

$dom = new DOMDocument();
$dom->loadHTML($html);

Класс DOMDocument поставляется с множеством методов. Это те, которые вам понадобятся getElementById а также getElementsByTagName,

Что-то вроде этого:

$html = '<div id="test"><b>I want to be found!</b></div><div id="poep"><b>Im not selected</b></div>';

$dom = new DOMDocument();
$dom->loadHTML($html);

$div = $dom->getElementById('test');
$text = $div->getElementsByTagName('b')->item(0)->nodeValue;

echo $text;

Будет выводить:

I want to be found!
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector