我有这个脚本可以从同一网站的多个页面提取数据。有大约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
,依此类推。如何在不为每个链接创建不同文件的情况下做到这一点?
答案 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);
}