Crawler
class Crawler implements Countable, IteratorAggregate
Crawler упрощает навигацию по списку объектов \DOMNode.
Свойства
| protected | $uri |
Методы
| __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, string|null $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 = 0, 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() | |
| array | sibling(DOMElement $node, string $siblingDir = 'nextSibling') |
Подробности
__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, string|null $type = null)
Добавляет HTML/XML содержимое.
Если кодировка не установлена через тип содержимого, предполагается, что это UTF-8, или ISO-8859-1 в качестве резервного варианта, что является стандартной кодировкой, определенной спецификацией HTTP 1.1.
Параметры
| string | $content | Строка для разбора как HTML/XML |
| string|null | $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 = 0, 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(строка $xpath)
Вычисляет выражение XPath.
Так как выражение XPath может вычисляться либо до простого типа, либо до \DOMNodeList, этот метод вернёт либо массив простых типов, либо новый экземпляр Crawler.
Параметры
| строка | $xpath | Выражение XPath |
Значение результата
| массив|Crawler | Массив результатов вычисления или новый экземпляр Crawler |
массив 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|DOMElement[] getIterator()
Значение результата
| ArrayIterator|DOMElement[] |
protected array sibling(DOMElement $node, string $siblingDir = 'nextSibling')
Параметры
| DOMElement | $node | |
| string | $siblingDir |
Возвращаемое значение
| array |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/DomCrawler/Crawler.html