2017-06-16 3 views
1

Also experimentiere ich mit php scraping possibilites, und ich möchte ein bisschen genauer über die Daten, die echo'd ist. Der Code unten ist das Erreichen dieser Ausgabe: DJIA Allzeit-Rekord-Hoch Close: 14. Juni 2017 (21,374.56)php scrape: echo nur das dritte Wort

<?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 
} 
?> 

Gibt es eine Art und Weise, jemand weiß, wo ich nur dann ausgegeben, das dritte Wort/Wert angeben könnte das kommt während des Kratzens auf. Im obigen Beispiel würde also nur "Time" Echo werden. Wenn ich Wort/Wert sage, denke ich, dass ich das als "Leerzeichen" identifiziere.

Könnte das möglich sein? Entschuldigung für meinen Mangel an PHP-Fähigkeiten, ziemlich neu in dieser Hinsicht. Wenn ich in der Lage wäre, genau das zu erreichen, was Echo ist, würde das viele Möglichkeiten eröffnen.

Best, -Wilson

+0

Hallo, 2.432,46 das ist Ihre Ausgabe, was Sie von diesem wollen? –

+0

Ich möchte nur in der Lage sein, das dritte Wort/Wert zu wählen, der in der Ausgabe, die ich bekomme, auftaucht. Das dritte Wort ist "Zeit". Wenn ich 2.432,46 wähle, was in Ordnung ist, glaube ich, dass das der neunte Wert/Wort wäre. Ich definiere dies durch "" Leerzeichen – Masteryogurt

Antwort

1

können Sie verwenden() PHP-Funktion explode, die einen String in ein Array konvertieren verwendet.

$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]; 
?> 
+0

NVM Fixed it! Nehmen Sie einfach die Zeile echo $ text_array [2]; // Ergebnis ist ein – Masteryogurt

+0

Danke Saroj! Du warst super schnell und super hilfreich. Begeistert, das jetzt wirklich zu erforschen. – Masteryogurt

+0

Ich bin froh, dass es dir geholfen hat. –