Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php抓取meta itemprop标记_Php_Xpath_Output_Scrape - Fatal编程技术网

php抓取meta itemprop标记

php抓取meta itemprop标记,php,xpath,output,scrape,Php,Xpath,Output,Scrape,我正在测试我的抓取能力,尝试从任何类型的标签输出值。遇到一些我不确定如何工作的东西,它包含在MetaItemProp标记中 源代码如下所示,我试图在MetaItemProp标记名“priceChangePercent”下刮取并输出-0.205。(见底线)*根据一天中的时间,该值是随机的 <meta itemprop="name" content="USDJPY Spot Exchange Rate" /> <meta itemprop="url" content="

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

源代码如下所示,我试图在MetaItemProp标记名“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 = "//meta[@itemprop='priceChangePercent']";
不走运。这是来自此url:

非常感谢

我的完整代码:

<?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'));

您的代码似乎获得了meta标记的文本内容,而meta标记本身没有文本内容,只有属性内容。

这可能很简单,但双引号有效吗?否则xpath看起来是正确的。哈,打字错误
itempromp
vs
itemprop
mac实际上只是在这里输入了错误,我用正确的拼写测试了它。谢谢你指出这一点。编辑文章@scuzzy我会的quotesXpath看起来不错,看到了吗-错误很可能在其他地方(到目前为止还不在问题中)。@scuzzy让它与这个更改一起工作。精彩的!非常感谢。
echo trim($entry->getAttribute('content'));