php scrape:仅回显第三个单词

问题描述 投票:0回答:1

所以我正在尝试 php 抓取的可能性,并且我想更准确地了解正在回显的数据。以下代码实现了此输出: DJIA All Time, Record-High Close: June 14, 2017 (21,374.56)

<?php

// weather forecast los angeles
$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;


$doc->strictErrorChecking = false;
$doc->recover = true;

$doc->loadHTMLFile('https://finance.yahoo.com/quote/%5EGSPC?p=%5EGSPC');

$xpath = new DOMXPath($doc);

$query = "//span[@class='Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)']";

$entries = $xpath->query($query);
foreach ($entries as $entry) {
echo trim($entry->textContent);  // use `trim` to eliminate spaces
}
?>

有没有一种可能的方法,任何人都知道我可以在哪里指定只输出抓取过程中出现的第三个单词/值。所以在上面的例子中,只有“Time”最终会得到回显。当我说单词/值时,我想我将其识别为有一个“”空格。

这可能吗?抱歉我缺乏 php 技能,对此还很陌生。如果我能够在回显的内容中得到这个精确的结果,那就会带来很多可能性。

最好的,-威尔逊

php web-scraping echo
1个回答
2
投票

您可以使用explode() php函数,该函数用于将字符串转换为数组。

$entries = $xpath->query($query);
foreach ($entries as $entry) {
     $result = trim($entry->textContent); 
     $ret_ = explode(' ', $result);
    echo $ret_[2];

}

Another one

<?php

$text = "DJIA All Time, Record-High Close: June 14, 2017 (21,374.56)";

$text_array = explode(' ', $text);

 print_r($text_array);
 echo $text_array[2];
?>
© www.soinside.com 2019 - 2024. All rights reserved.