【发布时间】:2013-05-06 00:20:09
【问题描述】:
我正在运行一个 PHP 网络抓取工具,用于从在线商店获取信息(免责声明,我已获得商店的许可)。刮板有3个功能:
- 从 JSON 文件中获取商店 URL 列表(为方便起见,假设我将一个 URL 传递给函数)
- 函数
getLinks获取提供的URL 页面上的所有链接,找到“下一个项目”链接,转到它,从该页面获取产品链接,等等。它将它们放入数组$allLinks。 - 我跑
foreach ($allLinks as $key => $value) {getInfo($value);} - 函数
getInfo($value)转到每个产品 URL 并从每个单独的产品页面获取产品信息。
这是完整代码 http://pastebin.com/SHHbG9EN#
在我的服务器上,这会导致错误,因为(AFAIK)我使用了太多内存/代码非常麻烦。我可以打印出getLinks 的结果就好了,但是只要我刮得更深,我就会得到一个 500 服务器错误(并且没有任何内容发布到日志中)。
我的问题
我应该将我的结果写入 mysql,这会减轻程序的负载吗?如果是这样,最好的方法是什么?我是否需要(以某种方式)清除我的变量或释放内存的东西?我对 PHP 很陌生,所以优化我的代码的复杂性对我来说是陌生的。
【问题讨论】:
-
您确定#item_info h2 使用正确吗,因为对于给定的网址,我看不到“#item_info h2”。刚刚做了 firebug conolse 检查 $("#item_info h2").length 并返回 0 长度。
-
@Shridhar 认为您正在查看错误的页面,是的,它存在。
标签: php web-scraping