优化PHP Web scraper以避免500个服务器错误

时间:2013-05-06 00:20:09

标签: php web-scraping

我正在运行一个PHP网络抓取工具,可以从在线商店获取信息(免责声明,我已获得商店许可)。刮刀有3个功能:

  1. 从JSON文件中获取商店URL的列表(为了方便起见,我们只是说我将一个URL传递给该函数)
  2. 功能getLinks抓取所提供的网页上的所有链接,找到“下一个项目”链接,转到该链接,从该页面抓取产品链接,依此类推。它将它们放在一个数组$allLinks
  3. 我运行foreach ($allLinks as $key => $value) {getInfo($value);}
  4. 功能getInfo($value)会转到每个产品网址,并从每个产品页面获取产品信息。
  5. 以下是完整代码 http://pastebin.com/SHHbG9EN#

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

    我的问题

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

1 个答案:

答案 0 :(得分:1)