以下是一个简单的 PHP 爬虫示例,用于爬取 http://www.bbsnet.com/ 网站上的所有图片,并将其下载到本地。该示例使用 PHP 内置的 cURL 库进行网络请求,使用 DOM 解析库和 XPath 查询语言来解析 HTML 文档,使用 file_put_contents() 函数将图片保存到本地磁盘。 ```php <?php // 设置要爬取的网站 URL 和保存图片的目录 $url = 'http://www.bbsnet.com/'; $dir = 'images/'; // 创建 cURL 会话 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 发送请求并获取响应 $response = curl_exec($ch); if ($response === false) { die('Error: ' . curl_error($ch)); } // 关闭 cURL 会话 curl_close($ch); // 创建 DOM 解析器对象 $dom = new DOMDocument(); $dom->loadHTML($response); // 创建 XPath 查询对象 $xpath = new DOMXPath($dom); // 使用 XPath 查询语句查找所有图片链接 $links = $xpath->query('//img/@src'); // 遍历图片链接并下载图片 foreach ($links as $link) { $url = $link->nodeValue; // 检查图片链接是否为绝对路径,如果不是,则补全为绝对路径 if (strpos($url, 'http') !== 0) { $url = 'http://www.bbsnet.com/' . $url; } // 获取图片文件名 $filename = basename($url); // 下载图片并保存到本地文件 $contents = file_get_contents($url); file_put_contents($dir . $filename, $contents); } ``` 该示例首先设置要爬取的网站 URL 和保存图片的目录,然后使用 cURL 库发送 HTTP 请求,获取网站的 HTML 页面。接着使用 DOM 解析库和 XPath 查询语言解析 HTML 页面,查找所有图片链接,并遍历链接来下载图片。在下载图片时,如果图片链接为相对路径,则补全为绝对路径,并使用 file_put_contents() 函数将图片保存到本地磁盘。 需要注意的是,在编写爬虫时,需要遵守网站的爬虫规则,不要过度频繁地请求网站,以免对网站造成不必要的负担。同时,需要注意处理一些细节问题,例如处理特殊字符、处理空白节点等。在实际应用中,还需要考虑如何处理重复的图片、如何优化代码性能等问题。