我正在编写一组爬虫类,它会抓取一个起始页面,并基于参数(使用类似于jquery的选择器的Simple Html Dom Parser找到)提取三个链接,然后抓取这些页面,接着进入第二页,选取下面的三个页面。目前最大页面数为57次。
不用说,我遇到了“内存分配大小达到 50331648 字节”的错误信息。
有没有什么方法可以避免内存耗尽?
让你知道,在提取第一页的内容之后,我运行一个go()函数,该函数将不断地提取页面,直到达到 $this->maxpages。我想我可以在实例化类时运行循环,但这样有帮助吗?
不用说,我遇到了“内存分配大小达到 50331648 字节”的错误信息。
有没有什么方法可以避免内存耗尽?
让你知道,在提取第一页的内容之后,我运行一个go()函数,该函数将不断地提取页面,直到达到 $this->maxpages。我想我可以在实例化类时运行循环,但这样有帮助吗?
$foo = new Foo(); $foo = new Foo();
不会泄漏任何数据... 您不需要unset()
第一个实例。但是循环引用(例如,父引用子,子引用父)在 5.3 以下版本中不会被释放。因此,这样的事情将在脚本运行期间累积。搜索 PHP 循环引用主题以获取更多信息。 - Matthew