PHP 抓取一个元项目道具标签



我正在测试我的抓取能力,尝试从任何类型的标签输出值。遇到一些我不确定如何工作的东西,它包含在元项目道具标签中。

源代码看起来像这样,我试图在元项目道具标签名称"priceChangePercent"下抓取并输出 -0.205。(见底线(。*那里的值是随机的,具体取决于一天中的时间。

 <meta itemprop="name" content="USDJPY Spot Exchange Rate" /> <meta     
itemprop="url" content="https://www.bloomberg.com/quote/USDJPY:CUR" />   
<meta itemprop="tickerSymbol" content="USDJPY" /> <meta  
itemprop="exchange" content="" /> <meta itemprop="price" content="111.95" 
/> <meta itemprop="priceChange" content="-0.23" /> <meta 
itemprop="priceChangePercent" content="-0.205" />

目前在正常工作的代码中,我正在识别如下内容:

$query = "//div[@class='change-container']";

这工作得很好。

我必须修改什么?我试过了

$query = "//meta[@itemprop='priceChangePercent']";

没有运气。这是来自这个网址:https://www.bloomberg.com/quote/USDJPY:CUR

非常感谢。

我的完整代码:

<?php 
  // this is yearly u.s. stock data
$doc = new DOMDocument;
// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;
 $doc->strictErrorChecking = false;
$doc->recover = true;
 $doc->loadHTMLFile('https://www.bloomberg.com/quote/USDJPY:CUR');
 $xpath = new DOMXPath($doc);
$query = "//meta[@itemprop='priceChangePercent']";
$entries = $xpath->query($query);
foreach ($entries as $entry) {
echo trim($entry->textContent);  // use `trim` to eliminate spaces

}
?>

获取代码示例:

echo trim($entry->textContent);

我已将其修改为:

echo trim($entry->getAttribute('content'));

您的代码似乎正在获取元标记的文本内容,该元标记没有自己的文本内容,只有属性内容。

最新更新