Я очищаю (используя PHP простой HTML DOM) ряд различных (новостных) сайтов с целью получения основного контента / основной части текста на странице.
Чтобы сделать это наилучшим способом, который я мог выяснить, было найти основной заголовок / заголовок (H1) и получить текст, содержащийся в том же элементе div, что и этот тег заголовка.
Как бы я мог получить содержимое целого (родительского?) Div, в обоих примерах ниже.
<div> <----- need to get contents of this whole div (containing the h1 and likely the main body of text)
<h1></h1>
main body of text here
</div>
Div может быть дальше вверх по дереву.
<div> <----- need to get contents of this whole div
<div>
<h1></h1>
</div>
<div>
main body of text here
</div>
</div>
Разделись еще дальше вверх по дереву.
<div> <----- need to get contents of this whole div
<div>
<div>
<h1></h1>
</div>
<div>
main body of text here
</div>
</div>
</div>
Тогда я мог бы сравнить размер каждого и определить основной div.
Предполагая, что $ e содержит выбранный вами элемент H1. Вы можете вызвать $ e-> parent (), чтобы получить родительский элемент.
Смотрите в разделе «Как пройти дерево DOM?» на вкладке «Обход дерева DOM». http://simplehtmldom.sourceforge.net/manual.htm
Ты можешь использовать parent
чтобы получить родительский элемент h1
:
# assuming that the <h1> element is the first <h1> on the page:
$div = $html->find('h1', 0)->parent();