Php 爬虫脚本

Php 爬虫脚本,php,web-crawler,Php,Web Crawler,我在这里抓取了一段脚本来抓取一个网站,把它放在我的服务器上,它就可以工作了。唯一的问题是,如果我尝试爬行,将深度设置为4以上,则无法工作。我想知道这是因为服务器缺乏资源还是因为代码本身 <?php error_reporting(E_ALL); function crawl_page($url, $depth) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { ret

我在这里抓取了一段脚本来抓取一个网站,把它放在我的服务器上,它就可以工作了。唯一的问题是,如果我尝试爬行,将深度设置为4以上,则无法工作。我想知道这是因为服务器缺乏资源还是因为代码本身

<?php

error_reporting(E_ALL); 

function crawl_page($url, $depth)
{
    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');
        if (0 !== strpos($href, 'http')) {
            $href = rtrim($url, '/') . '/' . ltrim($href, '/');
        }
        crawl_page($href, $depth - 1);
    }
    echo "URL:",$url,PHP_EOL;
    echo  "<br/>";
}
crawl_page("http://www.mangastream.com/", 2);
?>
编辑:

我打开了脚本的错误报告,我得到的只是这个


错误324网络::ERR\u EMPTY\u响应:未知错误。

尝试确保显示所有错误消息\u错误、错误报告。这会让你更了解它崩溃的原因


而且,请记住,爬行通常是非法的,这取决于您将如何处理数据。

我尝试将爬行设置为高于4级,这意味着它不工作?我的意思是,如果我将深度变量设置为高于4,则不会产生任何结果。超过默认时间限制并将此限制设置为后,它将超时一个更高的值是危险的,几个进程永远不会结束,占用内存很容易杀死服务器。你最好使用像phpDig这样的真正的爬虫程序。在内部使用爬虫程序来获取链接列表是可以的。