Метод selectLink
Метод selectLink класса Crawler ищет ссылку
(тег a) по её видимому тексту. Первым параметром
передаётся текст ссылки. Метод возвращает объект
Link, у которого можно получить адрес через
метод getUri. Если ссылка не найдена, выбрасывается
исключение InvalidArgumentException.
Синтаксис
public function selectLink(string $text): Link
Пример
Давайте найдём ссылку по тексту 'user' и получим её адрес:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDomCrawlerCrawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '<a href="/user/abcde">user</a>';
$crawler = new Crawler($html);
$link = $crawler->selectLink('user');
return new Response($link->getUri());
}
}
?>
Результат выполнения кода:
/user/abcde
Пример
Давайте выберем ссылку и перейдём по ней, получив содержимое целевой страницы:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDomCrawlerCrawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '<a href="/hello">hello</a>';
$crawler = new Crawler($html);
$link = $crawler->selectLink('hello');
return new Response($link->getNode()->nodeValue);
}
}
?>
Результат выполнения кода:
"hello"
Смотрите также
-
класс
Crawler,
который представляет DOM-документ для обхода -
метод
links,
который возвращает все ссылки страницы -
метод
filter,
который фильтрует узлы по CSS-селектору -
метод
selectButton,
который находит кнопку по её тексту