我目前正在從一個網站上抓取數據。我用下面的代碼刮掉了我需要的所有數據,但是我想知道將這些數據輸出到逗號分隔的CSV文件中的最簡單方法是什麼。我原本計劃把它全部移到一張表格中,然後以這種方式導出,但我知道如果這是最有效的方法,不要這樣做。將抓取的數據導出爲CSV
<?php
$html = file_get_contents("http://www.zillow.com/homes/for_sale/Alamance-County-NC/2117_rid/36.181671,-78.943291,35.912411,-79.835243_rect/10_zm/1_fr/");
$DOM = new DOMDocument();
libxml_use_internal_errors(true);
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'property-address';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
$csv_values = array();
foreach ($nodes as $node) {
$csv_values[] = $node->nodeValue;
}
$handle = fopen("C:\Users\Stephen\Documents\WorkCSV\work.csv", "w");
if (false !== $handle) {
fputcsv($handle, $csv_values);
}
?>
http://www.php.net//manual/en/function.fputcsv.php – dave
@dave我看到我應該使用該命令的數組。我如何將這些對象轉換爲數組?每個對象都包含大約20個左右的值。我嘗試了$ myarray = array($ node),但它只是基於每個對象中的最後一個值而不是整個列表創建一個數組。對此有何想法? – Steve
正如@dave所說,在文件路徑中雙轉義反斜槓,改爲:'$ handle = fopen(「C:\\ Users \\ Stephen \\ Documents \\ WorkCSV \\ work.csv」,「w」) ;' ' – berrberr