我正在运行一个PHP网络抓取工具,可以从在线商店获取信息(免责声明,我已获得商店许可)。刮刀有3个功能:
getLinks
抓取所提供的网页上的所有链接,找到“下一个项目”链接,转到该链接,从该页面抓取产品链接,依此类推。它将它们放在一个数组$allLinks
。foreach ($allLinks as $key => $value) {getInfo($value);}
getInfo($value)
会转到每个产品网址,并从每个产品页面获取产品信息。以下是完整代码 http://pastebin.com/SHHbG9EN#
在我的服务器上,这会导致错误,因为(AFAIK)我使用的内存太多/代码非常繁琐。我可以打印出getLinks
的结果就好了,但是当我刮得更深时,我得到500服务器错误(并且没有任何内容发布到日志中)。
我的问题
我应该将结果写入mysql吗?这会减轻程序的负担吗?如果是这样,最好的方法是什么?我是否需要(以某种方式)清除我的变量或某些内容以释放内存?我是PHP的新手,所以优化我的代码的复杂性对我来说很陌生。
答案 0 :(得分:1)
您应该启用error_reporting
error_reporting(E_ALL);
ini_set("display_errors","On");
我认为你也应该考虑多卷曲