Crawler
класс Crawler реализует Countable, IteratorAggregate
Crawler упрощает навигацию по списку объектов \DOMNode.
Методы
| __construct(mixed $node = null, string $currentUri = null, string $baseHref = null) | ||
| string | getUri() Возвращает текущий URI. | |
| string | getBaseHref() Возвращает базовый href. | |
| clear() Удаляет все узлы. | ||
| add(DOMNodeList|DOMNode|array|string|null $node) Добавляет узел в текущий список узлов. | ||
| addContent(string $content, null|string $type = null) Добавляет HTML/XML содержимое. | ||
| addHtmlContent(string $content, string $charset = 'UTF-8') Добавляет HTML-содержимое в список узлов. | ||
| addXmlContent(string $content, string $charset = 'UTF-8', int $options = LIBXML_NONET) Добавляет XML-содержимое в список узлов. | ||
| addDocument(DOMDocument $dom) Добавляет \DOMDocument в список узлов. | ||
| addNodeList(DOMNodeList $nodes) Добавляет \DOMNodeList в список узлов. | ||
| addNodes(array $nodes) Добавляет массив экземпляров \DOMNode в список узлов. | ||
| addNode(DOMNode $node) Добавляет экземпляр \DOMNode в список узлов. | ||
| Crawler | eq(int $position) Возвращает узел, заданный его позицией в списке узлов. | |
| array | each(Closure $closure) Вызывает анонимную функцию для каждого узла в списке. | |
| Crawler | slice(int $offset, int $length = null) Вырезает список узлов по $offset и $length. | |
| Crawler | reduce(Closure $closure) Уменьшает список узлов, вызывая анонимную функцию. | |
| Crawler | first() Возвращает первый узел текущего выбора. | |
| Crawler | last() Возвращает последний узел текущего выбора. | |
| Crawler | siblings() Возвращает узлы-потомки текущего выбора. | |
| Crawler | nextAll() Возвращает последующие узлы-потомки текущего выбора. | |
| Crawler | previousAll() Возвращает предыдущие узлы-потомки текущего выбора. | |
| Crawler | parents() Возвращает родительские узлы текущего выбора. | |
| Crawler | children() Возвращает дочерние узлы текущего выбора. | |
| string|null | attr(string $attribute) Возвращает значение атрибута первого узла списка. | |
| string | nodeName() Возвращает имя узла первого узла списка. | |
| string | text() Возвращает значение узла первого узла списка. | |
| string | html() Возвращает первый узел списка в формате HTML. | |
| array | extract(array $attributes) Извлекает информацию из списка узлов. | |
| Crawler | filterXPath(string $xpath) Фильтры список узлов с выражением XPath. | |
| Crawler | filter(string $selector) Фильтры список узлов с CSS-селектором. | |
| Crawler | selectLink(string $value) Выбирает ссылки по имени или значению alt для кликабельных изображений. | |
| Crawler | selectImage(string $value) Выбирает изображения по значению alt. | |
| Crawler | selectButton(string $value) Выбирает кнопку по имени или значению alt для изображений. | |
| Link | link(string $method = 'get') Возвращает объект Link для первого узла в списке. | |
| Link[] | links() Возвращает массив объектов Link для узлов в списке. | |
| Image | image() Возвращает объект Image для первого узла в списке. | |
| Image[] | images() Возвращает массив объектов Image для узлов в списке. | |
| Form | form(array $values = null, string $method = null) Возвращает объект Form для первого узла в списке. | |
| setDefaultNamespacePrefix(string $prefix) Перегружает префикс стандартного пространства имен, который используется с выражениями XPath и CSS. | ||
| registerNamespace(string $prefix, string $namespace) | ||
| static string | xpathLiteral(string $s) Преобразует строку для выражений XPath. | |
| DOMElement|null | getNode(int $position) | |
| int | count() | |
| ArrayIterator | getIterator() |
Подробности
__construct(mixed $node = null, string $currentUri = null, string $baseHref = null)
Параметры
| mixed | $node | Узел, используемый в качестве основы для обхода |
| string | $currentUri | Текущий URI |
| string | $baseHref | Значение base href |
string getUri()
Возвращает текущий URI.
Возвращаемое значение
| string |
string getBaseHref()
Возвращает base href.
Возвращаемое значение
| string |
clear()
Удаляет все узлы.
add(DOMNodeList|DOMNode|array|string|null $node)
Добавляет узел в текущий список узлов.
Этот метод использует соответствующий специализированный метод add*() в зависимости от типа аргумента.
Параметры
| DOMNodeList|DOMNode|array|string|null | $node | Узел |
Исключения
| InvalidArgumentException | Если узел имеет не ожидаемый тип. |
addContent(string $content, null|string $type = null)
Добавляет HTML/XML-контент.
Если кодировка не задана через тип содержимого, предполагается кодировка ISO-8859-1, которая является кодировкой по умолчанию, определённой спецификацией HTTP 1.1.
Параметры
| string | $content | Строка для разбора как HTML/XML |
| null|string | $type | Тип содержимого строки |
addHtmlContent(string $content, string $charset = 'UTF-8')
Добавляет HTML-содержимое в список узлов.
Ошибки libxml отключаются при разборе содержимого.
Если вам нужны ошибки разбора, убедитесь, что вы включили внутренние ошибки через libxml_use_internal_errors(true), а затем получите ошибки через libxml_get_errors(). Убедитесь, что вы очищаете ошибки с помощью libxml_clear_errors() после этого.
Параметры
| string | $content | HTML-содержимое |
| string | $charset | Кодировка |
addXmlContent(string $content, string $charset = 'UTF-8', int $options = LIBXML_NONET)
Добавляет XML-содержимое в список узлов.
Ошибки libxml отключаются при разборе содержимого.
Если вам нужны ошибки разбора, убедитесь, что вы включили внутренние ошибки через libxml_use_internal_errors(true), а затем получите ошибки через libxml_get_errors(). Убедитесь, что вы очищаете ошибки с помощью libxml_clear_errors() после этого.
Параметры
| string | $content | XML-содержимое |
| string | $charset | Кодировка |
| int | $options | Побитовое ИЛИ констант опций libxml. LIBXML_PARSEHUGE опасно, см. http://symfony.com/blog/security-release-symfony-2-0-17-released |
addDocument(DOMDocument $dom)
Добавляет \DOMDocument в список узлов.
Параметры
| DOMDocument | $dom | Экземпляр \DOMDocument |
addNodeList(DOMNodeList $nodes)
Добавляет \DOMNodeList в список узлов.
Параметры
| DOMNodeList | $nodes | Экземпляр \DOMNodeList |
addNodes(array $nodes)
Добавляет массив экземпляров \DOMNode в список узлов.
Параметры
| array | $nodes | Массив экземпляров \DOMNode |
addNode(DOMNode $node)
Добавляет экземпляр \DOMNode в список узлов.
Параметры
| DOMNode | $node | Экземпляр \DOMNode |
Crawler eq(int $position)
Возвращает узел по его позиции в списке узлов.
Параметры
| int | $position | Позиция |
Возвращаемое значение
| Crawler |
array each(Closure $closure)
Вызывает анонимную функцию для каждого узла списка.
Анонимная функция получает позицию и узел, обернутый в экземпляр Crawler, в качестве аргументов.
Пример:
$crawler->filter('h1')->each(function ($node, $i) {
return $node->text();
});
Параметры
| Closure | $closure | Анонимная функция |
Возвращаемое значение
| array | Массив значений, возвращенных анонимной функцией |
Crawler slice(int $offset, int $length = null)
Вырезает список узлов по $offset и $length.
Параметры
| int | $offset | |
| int | $length |
Возвращаемое значение
| Crawler |
Crawler reduce(Closure $closure)
Сводит список узлов, вызывая анонимную функцию.
Чтобы удалить узел из списка, анонимная функция должна вернуть false.
Параметры
| Closure | $closure | Анонимная функция |
Возвращаемое значение
| Crawler |
Crawler first()
Возвращает первый узел текущего выбора.
Возвращаемое значение
| Crawler |
Crawler last()
Возвращает последний узел текущего выбора.
Возвращаемое значение
| Crawler |
Crawler siblings()
Возвращает узлы-близнецы текущего выбора.
Возвращаемое значение
| Crawler |
Исключения
| InvalidArgumentException | Если текущий узел пуст |
Crawler nextAll()
Возвращает следующие узлы-близнецы текущего выбора.
Возвращаемое значение
| Crawler |
Исключения
| InvalidArgumentException | Если текущий узел пуст |
Crawler previousAll()
Возвращает предыдущие узлы-близнецы текущего выбора.
Возвращаемое значение
| Crawler |
Исключения
| InvalidArgumentException |
Crawler parents()
Возвращает родительские узлы текущего выбора.
Возвращаемое значение
| Crawler |
Исключения
| InvalidArgumentException | Если текущий узел пуст |
Crawler children()
Возвращает дочерние узлы текущего выбора.
Возвращаемое значение
| Crawler |
Исключения
| InvalidArgumentException | Если текущий узел пуст |
string|null attr(string $attribute)
Возвращает значение атрибута первого узла списка.
Параметры
| string | $attribute | Имя атрибута |
Возвращаемое значение
| строка|null | Значение атрибута или null, если атрибута не существует |
Исключения
| InvalidArgumentException | При пустом текущем узле |
строка nodeName()
Возвращает имя узла первого узла в списке.
Возвращаемое значение
| строка | Имя узла |
Исключения
| InvalidArgumentException | При пустом текущем узле |
строка text()
Возвращает значение узла первого узла в списке.
Возвращаемое значение
| строка | Значение узла |
Исключения
| InvalidArgumentException | При пустом текущем узле |
строка html()
Возвращает первый узел списка в формате HTML.
Возвращаемое значение
| строка | HTML узла |
Исключения
| InvalidArgumentException | При пустом текущем узле |
массив extract(массив $attributes)
Извлекает информацию из списка узлов.
Можно извлечь атрибуты и/или значение узла (_text).
Пример:
$crawler->filter('h1 a')->extract(array('_text', 'href'));
Параметры
| массив | $attributes | Массив атрибутов |
Возвращаемое значение
| массив | Массив извлечённых значений |
Crawler filterXPath(строка $xpath)
Фильтрует список узлов с помощью XPath-выражения.
XPath-выражение оценивается в контексте обходчика, который рассматривается как виртуальный родитель элементов внутри него. Это означает, что селектор потомка "div" или "./div" будет соответствовать только элементам div текущего обходчика, а не их потомкам.
Параметры
| строка | $xpath | XPath-выражение |
Возвращаемое значение
| Crawler |
Crawler filter(строка $selector)
Фильтрует список узлов с помощью CSS-селектора.
Этот метод работает только при установленной компоненте CssSelector Symfony.
Параметры
| строка | $selector | CSS-селектор |
Возвращаемое значение
| Crawler |
Исключения
| RuntimeException | если компонент CssSelector недоступен |
Crawler selectLink(строка $value)
Выбирает ссылки по имени или значению alt для кликабельных изображений.
Параметры
| строка | $value | Текст ссылки |
Возвращаемое значение
| Crawler |
Crawler selectImage(строка $value)
Выбирает изображения по значению alt.
Параметры
| строка | $value | Значение alt изображения |
Возвращаемое значение
| Crawler | Новый экземпляр Crawler с отфильтрованным списком узлов |
Crawler selectButton(строка $value)
Выбирает кнопку по имени или значению alt для изображений.
Параметры
| строка | $value | Текст кнопки |
Возвращаемое значение
| Crawler |
Ссылка link(строка $method = 'get')
Возвращает объект Link для первого узла в списке.
Параметры
| строка | $method | Метод для ссылки (по умолчанию get) |
Возвращаемое значение
| Ссылка | Экземпляр Link |
Исключения
| InvalidArgumentException | Если текущий список узлов пустой или выбранный узел не является экземпляром DOMElement |
Ссылка[] links()
Возвращает массив объектов Link для узлов в списке.
Возвращаемое значение
| Ссылка[] | Массив экземпляров Link |
Исключения
| InvalidArgumentException | Если текущий список узлов содержит не-DOMElement экземпляры |
Изображение image()
Возвращает объект Image для первого узла в списке.
Возвращаемое значение
| Изображение | Экземпляр Image |
Исключения
| InvalidArgumentException | Если текущий список узлов пустой |
Изображение[] images()
Возвращает массив объектов Image для узлов в списке.
Возвращаемое значение
| Изображение[] | Массив экземпляров Image |
Форма form(массив $values = null, строка $method = null)
Возвращает объект Form для первого узла в списке.
Параметры
| массив | $values | Массив значений для полей формы |
| строка | $method | Метод для формы |
Возвращаемое значение
| Форма | Экземпляр Form |
Исключения
| InvalidArgumentException | Если текущий список узлов пустой или выбранный узел не является экземпляром DOMElement |
setDefaultNamespacePrefix(строка $prefix)
Переопределяет префикс стандартного пространства имён, используемый в XPath и CSS-выражениях.
Параметры
| строка | $prefix |
registerNamespace(строка $prefix, строка $namespace)
Параметры
| строка | $prefix | |
| строка | $namespace |
static строка xpathLiteral(строка $s)
Преобразует строку для XPath-выражений.
Экранированные символы: кавычки (") и апостроф (').
Примеры:
echo Crawler::xpathLiteral('foo " bar');
//prints 'foo " bar'
echo Crawler::xpathLiteral("foo ' bar");
//prints "foo ' bar"
echo Crawler::xpathLiteral('a\'b"c');
//prints concat('a', "'", 'b"c')
Параметры
| строка | $s | Строка для экранирования |
Возвращаемое значение
| строка | Преобразованная строка |
DOMElement|null getNode(целое $position)
Параметры
| целое | $position |
Возвращаемое значение
| DOMElement|null |
целое count()
Возвращаемое значение
| целое |
ArrayIterator getIterator()
Возвращаемое значение
| ArrayIterator |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.1/Symfony/Component/DomCrawler/Crawler.html