PHP 抓取外部网站的特定标签内容 & Return href
PHP Crawl Specific Tab Content of External Website & Return href
使用 PHP,我想检索外部网站中的特定元素。
外部网站是https://mcnmedia.tv/iframe/2684我要检索的具体元素是第一个link在'Recordings'选项卡中
例如第一个link包含下面的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
并在我的网站上直接显示 link;
View Latest Recording - https://mcnmedia.tv/recordings/2435
.
我有以下 PHP 但它没有像我想要的那样工作,目前它只输出文本 (Mass 26 Mar 2020
),我不确定如何获得实际的href
link 地址?
<?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>";
?>
我怎样才能做到这一点?
您的 XPath 还不足以获取 href,您可以添加 /a/@href
表示使用 <a>
标记内的 href
属性...
$nodeList = $xpath->evaluate("//div[@class='recording-item-inner']/a/@href");
您可以简化它,使用 evaluate()
获取特定值并修改 XPath 以将属性作为字符串而不是节点获取...
$href = $xpath->evaluate("string(//div[@class='recording-item-inner']/a/@href)");
echo "<p>" . $href . "</p>";
使用 PHP,我想检索外部网站中的特定元素。
外部网站是https://mcnmedia.tv/iframe/2684我要检索的具体元素是第一个link在'Recordings'选项卡中
例如第一个link包含下面的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
并在我的网站上直接显示 link;
View Latest Recording - https://mcnmedia.tv/recordings/2435
.
我有以下 PHP 但它没有像我想要的那样工作,目前它只输出文本 (Mass 26 Mar 2020
),我不确定如何获得实际的href
link 地址?
<?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>";
?>
我怎样才能做到这一点?
您的 XPath 还不足以获取 href,您可以添加 /a/@href
表示使用 <a>
标记内的 href
属性...
$nodeList = $xpath->evaluate("//div[@class='recording-item-inner']/a/@href");
您可以简化它,使用 evaluate()
获取特定值并修改 XPath 以将属性作为字符串而不是节点获取...
$href = $xpath->evaluate("string(//div[@class='recording-item-inner']/a/@href)");
echo "<p>" . $href . "</p>";