PHP Crawl Specifi c Вкладка Содержание внешнего сайта и возврат href - PullRequest
1 голос
/ 26 марта 2020

Используя PHP, я хочу получить указанный c элемент на внешнем веб-сайте.

Внешний веб-сайт https://mcnmedia.tv/iframe/2684 Указанный элемент c, который я хочу получить первая ссылка на вкладке «Записи».

Например, первая ссылка содержит следующий HTML-код:

<div class="small-12 medium-6 me column recording-item">
    <div class="recording-item-inner">
        <a class="small-12 column recording-name" href="/recordings/2435">
        <div class="info">
            <b>Mass</b><br>
            <small>26 Mar 2020</small>
        </div><i class="fa fa-play"></i></a>
    </div>
</div>

Я хочу получить href и отображать прямую ссылку на моем сайте, как;

View Latest Recording - https://mcnmedia.tv/recordings/2435.

У меня есть следующее PHP, но оно не работает так, как мне бы хотелось, в настоящее время выводится только текст (Mass 26 Mar 2020), я Не знаете, как получить фактический href адрес ссылки?

<?php
$page = file_get_contents('https://mcnmedia.tv/iframe/2684');
@$doc = new DOMDocument();
@$doc->loadHTML($page);   
$xpath = new DomXPath($doc);
$nodeList = $xpath->query("//div[@class='recording-item-inner']");
$node = $nodeList->item(0);
// To check the result:
echo "<p>" . $node->nodeValue . "</p>";
?>

Как мне этого добиться?

1 Ответ

1 голос
/ 26 марта 2020

Вы не достаточно далеко продвинулись с XPath для получения href, вы можете добавить /a/@href, чтобы сказать, использовать атрибут href внутри тега <a> ...

$nodeList = $xpath->evaluate("//div[@class='recording-item-inner']/a/@href");

Вы можете упростить это, используйте evaluate(), чтобы получить значение c и измените XPath, чтобы получить атрибут в виде строки вместо узла ...

$href = $xpath->evaluate("string(//div[@class='recording-item-inner']/a/@href)");
echo "<p>" . $href . "</p>";
...