我正在为一个爬虫编写一组类,它抓取一个起始页,根据参数提取三个链接(使用Simple Html Dom Parser找到允许使用类似选择器的jquery),抓取这些页面,然后转到第2页,选择接下来的3页。当前最大页面是57次。
不用说我得到了:
允许的内存大小为50331648字节耗尽错误消息。
我有什么方法可以避免忘记记忆。
为了让您知道,在拉入第一页的内容后,我运行了一个go()函数,该函数会持续拉入页面,直到达到$ this-> maxpages。我想我可以在实例化类时运行循环,但这会有所帮助。
答案 0 :(得分:5)
您可以调整内存限制:
ini_set('memory_limit', '128M');
但是我会尝试让脚本使用更少的内存。确保将数据/引用释放到不再需要存在的任何内容中。
memory_get_usage()
可用于调试内存使用量累积的位置。
此外,如果您不使用PHP 5.3,您可以考虑升级,因为它的垃圾收集器更好。