Простой HTML DOM — это, по сути, php, который вы добавляете на свои страницы, что позволяет вам выполнять простой веб-скрейпинг. По большей части это хорошо, но я не могу разобраться в руководстве, так как я не большой программист. Есть ли какие-либо сайты/руководства, которые могут помочь в этом? (тот, что на php.net, на данный момент для меня слишком сложен) Есть ли лучшее место, чтобы задать такой вопрос?
Его сайт находится по адресу: http://simplehtmldom.sourceforge.net/manual.htm.
Я могу соскрести вещи, которые имеют определенные классы, такие как <tr class="group">
, но не промежуточные. Например.. Это то, что я сейчас использую...
$url = 'http://www.test.com';
$html = file_get_html($url);
foreach($html->find('tr[class=group]') as $result)
{
$first = $result->find('td[class=category1]',0);
$second = $result->find('td[class=category2]',0);
echo $first.$second;
}
}
Но вот код, который я пытаюсь очистить.
<table>
<tr class="Group">
<td>
<dl class="Summary">
<dt>Heading 1</dt>
<dd><a href="#123" class="ViewProfile">Cat</a></dd>
<dd><a href="#032" class="ViewProfile">Bacon</a></dd>
<dt>Heading 2</dt>
<dd><a href="#143" class="ViewProfile">Narwhal</a></dd>
<dd><a href="#642" class="ViewProfile">Ice Soap</a></dd>
</dl>
</td>
</tr>
</table>
Я пытаюсь извлечь содержимое каждого <dt>
и поместить его в переменную. Затем я пытаюсь извлечь содержимое каждого <dd>
и поместить его в переменную, но ничего из того, что я пробовал, не работает. Вот лучшее, что я смог найти, но оно многократно возвращает мне только первый заголовок, а не переходит ко второму.
foreach($html->find('tr[class=Summary]') as $result2)
{
echo $result2->find('dt',0)->innertext;
}
Спасибо всем, кто может помочь. Извините, если это не ясно или что это так долго. В идеале я хотел бы иметь возможность лучше понимать эти команды DOM, поскольку я хотел бы понять это сам, а не кто-то здесь, просто сделать это (но я тоже был бы признателен).
TL;DR: я пытаюсь понять, как использовать команды, перечисленные в руководстве (ссылка выше). «Руководство» не достаточно просто. Как вы относитесь к изучению этого материала?