Crawler
class Crawler implements Countable, IteratorAggregate
Crawler облегчает навигацию по списку объектов \DOMElement.
Методы
| __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') Добавляет 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 | 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. | |
| 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 |
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')
Добавляет XML-контент в список узлов.
При разборе контента отключены ошибки libxml.
Если вам нужны ошибки разбора, убедитесь, что включены внутренние ошибки через libxml_use_internal_errors(true), а затем получите ошибки через libxml_get_errors(). Убедитесь, что вы очистите ошибки с помощью libxml_clear_errors() после этого.
Параметры
| string | $content | XML-контент |
| string | $charset | Кодировка |
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 | Новый экземпляр Crawler с выбранным узлом или пустой 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 со срезанными узлами |
Crawler reduce(Closure $closure)
Сокращает список узлов, вызывая анонимную функцию.
Чтобы удалить узел из списка, анонимная функция должна вернуть false.
Параметры
| Closure | $closure | Анонимная функция |
Возвращаемое значение
| Crawler | Экземпляр Crawler с выбранными узлами. |
Crawler first()
Возвращает первый узел текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler с первым выбранным узлом |
Crawler last()
Возвращает последний узел текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler с последним выбранным узлом |
Crawler siblings()
Возвращает узлы-свойства текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler с узлами-свойствами |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
Crawler nextAll()
Возвращает следующие узлы-свойства текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler со следующими узлами-свойствами |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
Crawler previousAll()
Возвращает предыдущие узлы-свойства текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler с предыдущими узлами-свойствами |
Исключения
| InvalidArgumentException |
Crawler parents()
Возвращает родительские узлы текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр Crawler с родительскими узлами текущего выбора |
Исключения
| InvalidArgumentException | Когда текущий узел пуст |
Crawler children()
Возвращает дочерние узлы текущего выбора.
Возвращаемое значение
| Crawler | Экземпляр 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-выражение вычисляется в контексте обьекта Crawler, который рассматривается как виртуальный родитель элементов внутри него. Это означает, что селектор потомка "div" или "./div" будет соответствовать только элементам div текущего Crawler, а не их потомкам.
Параметры
| string | $xpath | XPath-выражение |
Возвращаемое значение
| Crawler | Новый экземпляр Crawler со отфильтрованным списком узлов |
Crawler filter(string $selector)
Фильтрует список узлов с помощью CSS-селектора.
Этот метод работает только если установлен компонент CssSelector Symfony.
Параметры
| string | $selector | CSS-селектор |
Возвращаемое значение
| Crawler | Новый экземпляр Crawler со отфильтрованным списком узлов |
Исключения
| RuntimeException | если компонент CssSelector недоступен |
Crawler selectLink(string $value)
Выбирает ссылки по имени или значению alt для кликабельных изображений.
Параметры
| string | $value | Текст ссылки |
Возвращаемое значение
| Crawler | Новый экземпляр Crawler со отфильтрованным списком узлов |
Crawler selectButton(string $value)
Выбирает кнопку по имени или значению alt для изображений.
Параметры
| string | $value | Текст кнопки |
Возвращаемое значение
| Crawler | Новый экземпляр Crawler со отфильтрованным списком узлов |
Link link(string $method = 'get')
Возвращает объект Link для первого узла в списке.
Параметры
| string | $method | Метод для ссылки (по умолчанию get) |
Возвращаемое значение
| Link | Объект Link |
Исключения
| InvalidArgumentException | Если текущий список узлов пуст |
Link[] links()
Возвращает массив объектов Link для узлов в списке.
Возвращаемое значение
| Link[] | Массив объектов Link |
Form form(array $values = null, string $method = null)
Возвращает объект Form для первого узла в списке.
Параметры
| array | $values | Массив значений для полей формы |
| string | $method | Метод для формы |
Возвращаемое значение
| Form | Объект Form |
Исключения
| InvalidArgumentException | Если текущий список узлов пуст |
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 | Преобразованная строка |
DOMElement|null getNode(int $position)
Параметры
| int | $position |
Возвращаемое значение
| DOMElement|null |
int count()
Возвращаемое значение
| int |
ArrayIterator getIterator()
Возвращаемое значение
| ArrayIterator |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/DomCrawler/Crawler.html