PHP 網路爬蟲:從多個連結取得資料
問題:
。腳本從網頁上的多個連結檢索資料並將其儲存在本機文件中。答案:
使用DOM 和深度控制:
function crawl_page($url, $depth = 5) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } $seen[$url] = true; $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); // Handle relative URLs if (0 !== strpos($href, 'http')) { $path = '/' . ltrim($href, '/'); if (extension_loaded('http')) { $href = http_build_url($url, array('path' => $path)); } else { $parts = parse_url($url); $href = $parts['scheme'] . '://'; $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= dirname($parts['path'], 1).$path; } } crawl_page($href, $depth - 1); } // Output data echo "URL:", $url, PHP_EOL, "CONTENT:", PHP_EOL, $dom->saveHTML(), PHP_EOL, PHP_EOL; } // Usage crawl_page("http://hobodave.com", 2);
註:
以上是如何建立 PHP 網路爬蟲以從多個連結收集資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!