0

我正在运行一个 PHP 网络爬虫,它从在线商店获取信息(免责声明,我有商店的许可这样做)。刮刀有3个功能:

  1. 从 JSON 文件中获取商店 URL 列表(为方便起见,假设我将一个 URL 传递给函数)
  2. 函数getLinks获取提供的 URL 页面上的所有链接,找到“下一个项目”链接,转到它,从该页面获取产品链接,等等。它将它们放在一个数组$allLinks中。
  3. 我跑foreach ($allLinks as $key => $value) {getInfo($value);}
  4. 函数getInfo($value)转到每个产品 URL 并从每个单独的产品页面获取产品信息。

这是完整的代码 http://pastebin.com/SHHbG9EN#

在我的服务器上,这会导致错误,因为(AFAIK)我使用了太多内存/代码非常麻烦。我可以打印出getLinks很好的结果,但是只要我刮得更深,我就会得到一个 500 服务器错误(并且没有任何内容发布到日志中)。

我的问题

我应该将我的结果写入 mysql,这会减轻程序的负载吗?如果是这样,最好的方法是什么?我是否需要(以某种方式)清除我的变量或释放内存的东西?我对 PHP 很陌生,所以优化我的代码的复杂性对我来说是陌生的。

4

1 回答 1

1

您应该启用 error_reporting

error_reporting(E_ALL);
ini_set("display_errors","On");  

我认为你也应该考虑多卷曲看看

于 2013-05-06T00:29:18.433 回答