php 抓取元 itemprop 标签
php scraping a meta itemprop tag
我正在测试我的抓取能力,试图从任何类型的标签中输出值。遇到一些我不确定如何工作的东西,它包含在元 itemprop 标签中。
源代码如下所示,我试图在 meta itemprop 标签名称 "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']";
运气不好。这是来自这个url: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'));
您的代码似乎正在获取元标记的文本内容,它没有自己的文本内容,只有属性内容。
我正在测试我的抓取能力,试图从任何类型的标签中输出值。遇到一些我不确定如何工作的东西,它包含在元 itemprop 标签中。
源代码如下所示,我试图在 meta itemprop 标签名称 "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']";
运气不好。这是来自这个url: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'));
您的代码似乎正在获取元标记的文本内容,它没有自己的文本内容,只有属性内容。