Crawler
class Crawler implements Countable, IteratorAggregate
Crawler упрощает навигацию по списку объектов \DOMNode.
Методы
| __construct(mixed $node = null, string $uri = 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|Crawler | evaluate(string $xpath) Вычисляет выражение XPath. | |
| 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|DOMElement[] | getIterator() |
Подробности
__construct(mixed $node = null, string $uri = null, string $baseHref = null)
Параметры
| mixed | $node | Узел для использования в качестве основы для сканирования |
| string | $uri | Текущий 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 содержимое.
Если кодировка не задана через тип содержимого, она предполагается UTF-8, или ISO-8859-1 в качестве резервного варианта, что является кодировкой по умолчанию, определенной спецификацией HTTP 1.1.
Параметры
| string | $content | Строка для разбора как HTML/XML |
| null|string | $type | Тип содержимого строки |
addHtmlContent(string $content, string $charset = 'UTF-8')
Добавляет HTML-содержимое в список узлов.
Ошибки libxml отключаются при разборе содержимого.
Если вам нужны ошибки разбора, убедитесь, что включены внутренние ошибки с помощью libxmluseinternalerrors(true), а затем получите ошибки с помощью libxmlgeterrors(). Убедитесь, что вы очистите ошибки с помощью libxmlclearerrors() после этого.
Параметры
| string | $content | HTML-содержимое |
| string | $charset | Кодировка |
addXmlContent(string $content, string $charset = 'UTF-8', int $options = LIBXML_NONET)
Добавляет XML-содержимое в список узлов.
Ошибки libxml отключаются при разборе содержимого.
Если вам нужны ошибки разбора, убедитесь, что включены внутренние ошибки с помощью libxmluseinternalerrors(true), а затем получите ошибки с помощью libxmlgeterrors(). Убедитесь, что вы очистите ошибки с помощью libxmlclearerrors() после этого.
Параметры
| 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 | Когда текущий узел пуст |
массив|Crawler evaluate(string $xpath)
Вычисляет выражение XPath.
Так как выражение XPath может вычисляться как к простому типу, так и к \DOMNodeList, этот метод вернёт либо массив простых типов, либо новый экземпляр Crawler.
Параметры
| строка | $xpath | Выражение XPath |
Значение возврата
| массив|Crawler | Массив результатов вычисления или новый экземпляр Crawler |
массив extract(array $attributes)
Извлекает информацию из списка узлов.
Вы можете извлечь атрибуты и/или значение узла (_text).
Пример:
$crawler->filter('h1 a')->extract(array('_text', 'href'));
Параметры
| массив | $attributes | Массив атрибутов |
Значение возврата
| массив | Массив извлечённых значений |
Crawler filterXPath(string $xpath)
Фильтрует список узлов с помощью выражения XPath.
Выражение XPath вычисляется в контексте обходчика, который рассматривается как виртуальный родитель элементов внутри него. Это означает, что селектор потомка "div" или "./div" будет соответствовать только элементам div текущего обходчика, а не их потомкам.
Параметры
| строка | $xpath | Выражение XPath |
Значение возврата
| Crawler |
Crawler filter(string $selector)
Фильтрует список узлов с помощью селектора CSS.
Этот метод работает только если установлен компонент CssSelector Symfony.
Параметры
| строка | $selector | Селектор CSS |
Значение возврата
| Crawler |
Исключения
| RuntimeException | если компонент CssSelector недоступен |
Crawler selectLink(string $value)
Выбирает ссылки по имени или значению alt для кликабельных изображений.
Параметры
| строка | $value | Текст ссылки |
Значение возврата
| Crawler |
Crawler selectImage(string $value)
Выбирает изображения по значению alt.
Параметры
| строка | $value | Значение alt изображения |
Значение возврата
| Crawler | Новый экземпляр Crawler со отфильтрованным списком узлов |
Crawler selectButton(string $value)
Выбирает кнопку по имени или значению alt для изображений.
Параметры
| строка | $value | Текст кнопки |
Значение возврата
| Crawler |
Ссылка link(string $method = 'get')
Возвращает объект Link для первого узла в списке.
Параметры
| строка | $method | Метод для ссылки (по умолчанию get) |
Значение возврата
| Ссылка | Экземпляр Link |
Исключения
| InvalidArgumentException | Если текущий список узлов пуст или выбранный узел не является экземпляром DOMElement |
Ссылка[] links()
Возвращает массив объектов Link для узлов в списке.
Значение возврата
| Ссылка[] | Массив экземпляров Link |
Исключения
| InvalidArgumentException | Если текущий список узлов содержит объекты, не являющиеся DOMElement |
Изображение image()
Возвращает объект Image для первого узла в списке.
Значение возврата
| Изображение | Экземпляр Image |
Исключения
| InvalidArgumentException | Если текущий список узлов пуст |
Изображение[] images()
Возвращает массив объектов Image для узлов в списке.
Значение возврата
| Изображение[] | Массив экземпляров Image |
Форма form(array $values = null, string $method = null)
Возвращает объект Form для первого узла в списке.
Параметры
| массив | $values | Массив значений для полей формы |
| строка | $method | Метод для формы |
Значение возврата
| Форма | Экземпляр Form |
Исключения
| InvalidArgumentException | Если текущий список узлов пуст или выбранный узел не является экземпляром DOMElement |
setDefaultNamespacePrefix(string $prefix)
Перегружает префикс стандартного пространства имён для использования с выражениями XPath и CSS.
Параметры
| строка | $prefix |
registerNamespace(string $prefix, string $namespace)
Параметры
| строка | $prefix | |
| строка | $namespace |
static строка 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')
Параметры
| строка | $s | Строка для экранирования |
Значение возврата
| строка | Преобразованная строка |
DOMElement|null getNode(int $position)
Параметры
| целое | $position |
Значение возврата
| DOMElement|null |
целое count()
Значение возврата
| целое |
ArrayIterator|DOMElement[] getIterator()
Значение возврата
| ArrayIterator|DOMElement[] |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Component/DomCrawler/Crawler.html