多页抓取

时间:2015-05-07 21:51:02

标签: php screen-scraping

我正在寻找一种方法来使下面的脚本抓取位于数组中的多个页面,并将所选内容写入text或excel文档。

有什么想法吗? 这可能吗? 另一个问题是脚本在localhost上运行的原因,而不是放在服务器上的原因。谢谢。

<?php
include_once('simple_html_dom.php');
function scraping() {
    // create HTML DOM

    $html = file_get_html('http://lmvz.anofm.ro:8080/lmv/detalii.jsp?UNIQUEJVID=50/01/1150001435/1&judet=50');

    // get article block
    if($html && is_object($html) && isset($html->nodes)){

    foreach($html->find('/html/body/table') as $article) {
        // get title

        $item['titlu'] = trim($article->find('/tbody/tr[1]/td/div', 0)->plaintext);

        // get body
        $item['tr2'] = trim($article->find('/tbody/tr[2]/td[2]', 0)->plaintext);
        $item['tr3'] = trim($article->find('/tbody/tr[3]/td[2]', 0)->plaintext);
        $item['tr4'] = trim($article->find('/tbody/tr[4]/td[2]', 0)->plaintext);
        $item['tr5'] = trim($article->find('/tbody/tr[5]/td[2]', 0)->plaintext);
        $item['tr6'] = trim($article->find('/tbody/tr[6]/td[2]', 0)->plaintext);
        $item['tr7'] = trim($article->find('/tbody/tr[7]/td[2]', 0)->plaintext);
        $item['tr8'] = trim($article->find('/tbody/tr[8]/td[2]', 0)->plaintext);
        $item['tr9'] = trim($article->find('/tbody/tr[9]/td[2]', 0)->plaintext);
        $item['tr10'] = trim($article->find('/tbody/tr[10]/td[2]', 0)->plaintext);
        $item['tr11'] = trim($article->find('/tbody/tr[11]/td[2]', 0)->plaintext);
         $item['tr12'] = trim($article->find('/tbody/tr[12]/td/div/]', 0)->plaintext);
       $ret[] = $item;
    }

    // clean up memory
    $html->clear();
    unset($html);

    return $ret;}
}
echo '<pre>';
$ret = scraping();


foreach($ret as $v) {
    echo $v['titlu'].'<br>';

    echo $v['tr2'].'<br>';
    echo $v['tr3'].'<br>';
    echo $v['tr4'].'<br>';
    echo $v['tr5'].'<br>';
    echo $v['tr6'].'<br>';
    echo $v['tr7'].'<br>';
    echo $v['tr8'].'<br>';
    echo $v['tr9'].'<br>';
    echo $v['tr10'].'<br>';
    echo $v['tr11'].'<br>';
    echo $v['tr12'].'<br>';

}
?>

1 个答案:

答案 0 :(得分:1)

Curl会为您提供更清晰的输出,您可以尝试使用Guzzle使代码更容易编写,它应该支持您需要的所有功能。

在写入Excel方面,有一个很棒的PHP库可以用PHP写入Excel - PHPExcel

或者如果你想写一个文本文件,那个事件更容易,只需将你想要的所有文本组合成一个字符串并运行file_put_contents('PATHTOFILE', $multiPageContents);,只需确保你指向的文件路径是用户可写的运行PHP。