Вопрос по dom, php, simple-html-dom – Я обнаружил, что ganon намного медленнее, чем встроенный в DOM PHP, а также Simple HTML DOM Parser. Более того, Simple HTML DOM, похоже, страдает от сильной утечки памяти, и вам приходится вручную чистить или повторно использовать выделенные объекты.

15

жный дубликат:
Как анализировать и обрабатывать HTML с помощью PHP?

Я смотрю в HTML DOM парсеры для PHP. я обнаружилPHP Простой HTML DOM Parser, Есть ли другие, на которые я должен смотреть?

Это все еще отличный ресурс Гордон, +1 RobertPitt
Почему вы думаете, что вам нужно что-то еще? Если это делает работу, используйте это. :) casablanca

Ваш Ответ

3   ответа
16

но порядоквеличина медленнее чем встроенный парсер dom.

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

foreach($x->query("//a") as $node) 
{
    $data['dom']['href'][] = $node->getAttribute("href");
} 

Используйте это.

есть ли способ сделатьquery вернуть узел вместо нодлиста? Например, на странице есть только один тег h1. Я хочу получить его nodeValue, но не думаю, что мне придется перебирать нодлист. StackOverflowNewbie
Вы должны быть в состоянии использовать$node[0] чтобы получить первый узел в списке. Или просто повторить и сломать. Я просто повторяюсь и ломаюсь. Если запрос ничего не возвращает, я не получаю никаких ошибок таким образом. Byron Whitlock
5
1

Ganon, а вообщеPHP Простой HTML DOM Parser самый лучший!

Я обнаружил, что ganon намного медленнее, чем встроенный в DOM PHP, а также Simple HTML DOM Parser. Более того, Simple HTML DOM, похоже, страдает от сильной утечки памяти, и вам приходится вручную чистить или повторно использовать выделенные объекты. jahackbeth
ganon загружает только 2 элемента из моих желаний, и при попытке запустить простой html dom parser мой компьютер зависает !!! Yusef Mohamadi
PHP Simple HTML DOM Parser дросселирует, если вы пытаетесь сканировать несколько страниц, например уровень 1: получить 300 ссылок (например, из списка) уровень 2: перейти к каждой ссылке и получить страницу с подробностями и получить элементы. Все, что вы получаете, это набор ошибок сброса (в зависимости от типа сервера) - плюс это очень медленно Jeffz

Похожие вопросы