将已删除的数据导出为CSV

时间:2014-06-17 18:15:15

标签: php web-scraping export-to-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);
            }

            ?>

2 个答案:

答案 0 :(得分:0)

您可以使用fputcsviterator_to_array

$nodes = $finder->query("//*[contains(@class, '$classname')]");
$handle = fopen("/path/to/file.csv", "w");
if (false !== $handle) {
   fputcsv($handle, iterator_to_array($nodes));
}

或者像这样:

$csv_values = array();
foreach ($nodes as $node) {
    $csv_values[] = $node->nodeValue;     
}
$handle = fopen("/path/to/file.csv", "w");
if (false !== $handle) {
   fputcsv($handle, $csv_values);
}

在Windows平台上,请小心转义文件路径中使用的反斜杠,或使用正斜杠。

$handle = fopen("c:\\folder\\file.csv", "r");

答案 1 :(得分:0)

我能够使用Dave提供的代码将所有数据放入数组中。另外,在fopen我使用反斜杠&#34; \&#34; ,并切换到正斜杠&#34; /&#34;我能够产生一个错误,我可以使用它来导出到CSV。

相关问题