从同一网站的多个页面中提取内容

时间:2018-10-17 08:59:35

标签: php dom

我有这个脚本可以从同一网站的多个页面提取数据。有大约120页。

这是我用于获取单个页面的代码。

$html = file_get_contents('https://www.example.com/product?page=1');

$dom = new DOMDocument;

@$dom->loadHTML($html);

$links = $dom->getElementsByTagName('div');

foreach ($links as $link){
    file_put_contents('products.txt', $link->getAttribute('data-product-name') .PHP_EOL, FILE_APPEND);
}

如何对多个页面进行处理?特定页面的链接是增量链接,例如下一页将是https://www.example.com/product?page=2,依此类推。如何在不为每个链接创建不同文件的情况下做到这一点?

1 个答案:

答案 0 :(得分:1)

那呢:

function extractContent($page)
{
    $html = file_get_contents('https://www.example.com/product?page='.$page);
    $dom = new DOMDocument;
    @$dom->loadHTML($html);
    $links = $dom->getElementsByTagName('div');

    foreach ($links as $link) {
        // skip empty attributes
        if (empty($link->getAttribute('data-product-name'))) {
            continue;
        }
        file_put_contents('products.txt', $link->getAttribute('data-product-name') .PHP_EOL, FILE_APPEND);
    }
}

for ($i=1; $i<=120; $i++) {
    extractContent($i);
}