使用CakePHP的HttpSocket或PHP的cURL从搜索页面抓取多个站点

时间:2014-01-09 14:55:01

标签: php cakephp curl web-scraping web-crawler

我将使用CakePHP构建一个允许用户搜索关键字的应用程序,即。牛奶,然后我会自动搜索当地的网上商店,以获得最佳的牛奶价格,即。沃尔玛,肖斯,停止和购物等(注意:这是一个假设的情况,举例说明我需要完成的事情),然后我会将结果显示给用户。

我想利用CakePHP的HttpSocket库来代替cURL。

我需要将此设置设置为多线程,以便我可以更快地显示结果,但出于性能考虑,哪个是进行这些调用的最佳位置,即Controller?基本上,我正在寻找你对这种工作的最佳方法的见解,考虑到它需要多线程,快速。

之前我没有使用过CakePHP的HttpSocket库,但是我已经通过它看了一下并快速测试了它,它看起来非常强大。你对此有何看法?它是否与PHP的cURL进行了性能比较?

非常感谢您的见解。

1 个答案:

答案 0 :(得分:1)

cURL比任何普通的php实现都快,比如CakePHP套接字。

控制器是错误的地方,模型或自定义数据源将是正确的位置。您可以同时请求多个站点并等待X秒,直到您取消未及时响应的请求。此外,我会缓存结果,这样您就不必每次都要求价格。

根据价格变化的频率,每天或每小时查询一次或两次商店,例如使用shell并更新数据库中的价格,这可能是一个更好的主意。