Простой HTML DOM Parse в обратном направлении

0

Я пытаюсь получить содержимое второго для последних тегов на странице. Я не могу его найти, но надеялся, что можно разобрать снизу вверх, чтобы искать второй тег в этом порядке, а не помещать все в массив и считать один из последнего элемента. Причина обратной работы заключается в том, что страница, из которой я выхожу, динамична, и может быть сотни тегов, которые больше работают, чем я хочу.

Теги:
simple-html-dom

2 ответа

0
Лучший ответ

Кажется, что нет способа разбора в обратном направлении, поэтому я использовал следующее, чтобы сделать это, получив все теги в массиве, получив общее число с count(), а затем получим доступ к массиву два меньше, чем общее количество элементов.

$html = $datain->find('a');
$html_ind = $html[count($html)-2];
$result = $html_ind->plaintext;
1

Для любой динамической страницы это должно быть "статическое" время, которое вы запрашиваете, хотя оно может измениться в следующий раз. Нет смысла анализировать страницу в обратном порядке, и, насколько я знаю, алгоритм анализатора обратного порядка для html-страницы отсутствует.

Вот мое решение: в большинстве случаев динамическая страница также относительно "статическая", заголовок страницы всегда сверху, а нижний колонтитул всегда находится внизу.

вам нужно просто узнать, что "статический" тег относится к последнему, кроме одного.

предположим, что вы хотите получить всю информацию об авторских правах в нижней части этой страницы stackoverflow. Это правильное предположение, поскольку информация об авторских правах - это почти второй и последний тег этой страницы, и эта страница, очевидно, динамична.

Я могу найти его id://* [@id = "copyright"] (на самом деле это xpath, а не id, но здесь это не важно). вы можете просто взглянуть на исходный файл этой страницы или даже более просто использовать такие инструменты, как firebug или digpage. И id (xpath) относительно "статический".

Когда я отвечаю на ваш вопрос здесь, на этой странице нет ответа. Однако, прочитав это сообщение, мой ответ вставлен на эту страницу, и страница, безусловно, изменилась. Но xpath информации об авторских правах по-прежнему//* [@id = "copyright"]. Другими словами, digpage все равно может получить правильный тег для вас.

Вот информация об авторских правах, которую я получаю от digpage, прежде чем я отправлю ответ:

site design / logo  2013 stack exchange inc; user contributions licensed under cc-wiki 
            with attribution required

вы можете попробовать еще раз (http://www.digpage.com/utility), это не изменится.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню