Кrawler
класс Crawler расширяет SplObjectStorage
Crawler упрощает навигацию по списку объектов \DOMNode.
Методы
| __construct(mixed $node = null, string $currentUri = null, string $baseHref = null) | ||
| 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 в список узлов. | ||
| unserialize($serialized) | ||
| serialize() | ||
| Crawler | eq(int $position) Возвращает узел, заданный его позицией в списке узлов. | |
| array | each(Closure $closure) Вызывает анонимную функцию для каждого узла списка. | |
| Crawler | slice(int $offset, int $length = -1) Вырезает список узлов по $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 | selectButton(string $value) Выбирает кнопку по имени или значению alt для изображений. | |
| Link | link(string $method = 'get') Возвращает объект Link для первого узла в списке. | |
| Link[] | links() Возвращает массив объектов Link для узлов в списке. | |
| 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. | |
| attach($object, $data = null) устарело | ||
| detach($object) устарело | ||
| contains($object) устарело | ||
| addAll($storage) устарело | ||
| removeAll($storage) устарело | ||
| removeAllExcept($storage) устарело | ||
| getInfo() устарело | ||
| setInfo($data) устарело | ||
| offsetExists($object) устарело | ||
| offsetSet($object, $data = null) устарело | ||
| offsetUnset($object) устарело | ||
| offsetGet($object) устарело | ||
| DOMElement|null | getNode(int $position) |
Подробности
__construct(mixed $node = null, string $currentUri = null, string $baseHref = null)
Параметры
| mixed | $node | Узел для использования в качестве базового для сканирования |
| string | $currentUri | Текущий URI |
| string | $baseHref | Значение атрибута base href |
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 |
unserialize($serialized)
Параметры
| $serialized |
serialize()
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 = -1)
Вырезает список узлов по $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 | Имя атрибута |
Значение результата
| string|null | Значение атрибута или null, если атрибут не существует |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
string nodeName()
Возвращает имя узла первого узла в списке.
Значение результата
| string | Имя узла |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
string text()
Возвращает значение первого узла в списке.
Значение результата
| string | Значение узла |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
string html()
Возвращает первый узел списка в формате HTML.
Значение результата
| string | HTML узла |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
array extract(array $attributes)
Извлекает информацию из списка узлов.
Вы можете извлечь атрибуты или/и значение узла (_text).
Пример:
$crawler->filter('h1 a')->extract(array('_text', 'href'));
Параметры
| array | $attributes | Массив атрибутов |
Значение результата
| array | Массив извлеченных значений |
Crawler filterXPath(string $xpath)
Фильтрует список узлов с помощью XPath-выражения.
XPath-выражение вычисляется в контексте обходчика, который рассматривается как виртуальный родитель элементов внутри него. Это означает, что селектор потомка "div" или "./div" будет соответствовать только элементам div текущего обходчика, а не их потомкам.
Параметры
| string | $xpath | XPath-выражение |
Значение результата
| Crawler |
Crawler filter(string $selector)
Фильтрует список узлов с помощью CSS-селектора.
Этот метод работает только при установке компонента CssSelector Symfony.
Параметры
| string | $selector | CSS-селектор |
Значение результата
| Crawler |
Исключения
| RuntimeException | если компонент CssSelector недоступен |
Crawler selectLink(string $value)
Выбирает ссылки по имени или значению alt для кликабельных изображений.
Параметры
| string | $value | Текст ссылки |
Значение результата
| Crawler |
Crawler selectButton(string $value)
Выбирает кнопку по имени или значению alt для изображений.
Параметры
| string | $value | Текст кнопки |
Значение результата
| Crawler |
Link link(string $method = 'get')
Возвращает объект Link для первого узла в списке.
Параметры
| string | $method | Метод для ссылки (по умолчанию get) |
Значение результата
| Link | Экземпляр Link |
Исключения
| InvalidArgumentException | Если текущий список узлов пустой или выбранный узел не является экземпляром DOMElement |
Link[] links()
Возвращает массив объектов Link для узлов в списке.
Значение результата
| Link[] | Массив экземпляров Link |
Исключения
| InvalidArgumentException | Если текущий список узлов содержит объекты, не являющиеся экземплярами DOMElement |
Form form(array $values = null, string $method = null)
Возвращает объект Form для первого узла в списке.
Параметры
| array | $values | Массив значений для полей формы |
| string | $method | Метод для формы |
Значение результата
| Form | Экземпляр Form |
Исключения
| InvalidArgumentException | Если текущий список узлов пустой или выбранный узел не является экземпляром DOMElement |
setDefaultNamespacePrefix(string $prefix)
Перегружает префикс стандартного пространства имён для использования с XPath и CSS-выражениями.
Параметры
| string | $prefix |
registerNamespace(string $prefix, string $namespace)
Параметры
| string | $prefix | |
| string | $namespace |
static string xpathLiteral(string $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')
Параметры
| string | $s | Строка для экранирования |
Значение результата
| string | Преобразованная строка |
attach($object, $data = null) устарело
устарело
Параметры
| $object | ||
| $data |
detach($object) устарело
устарело
Параметры
| $object |
contains($object) устарело
устарело
Параметры
| $object |
addAll($storage) устарело
устарело
Параметры
| $storage |
removeAll($storage) устарело
устарело
Параметры
| $storage |
removeAllExcept($storage) устарело
устарело
Параметры
| $storage |
getInfo() устарело
устарело
setInfo($data) устарело
устаревшее
Параметры
| $data |
offsetExists($object) устаревшее
устаревшее
Параметры
| $object |
offsetSet($object, $data = null) устаревшее
устаревшее
Параметры
| $object | ||
| $data |
offsetUnset($object) устаревшее
устаревшее
Параметры
| $object |
offsetGet($object) устаревшее
устаревшее
Параметры
| $object |
DOMElement|null getNode(int $position)
Параметры
| int | $position |
Возвращаемое значение
| DOMElement|null |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/DomCrawler/Crawler.html