优化Web爬网程序的PHP CURL

时间:2012-12-06 07:09:16

标签: php linux curl curl-multi

我正在尝试使用curl编写基于PHP的爬虫程序。我有我需要抓取的20,000-30,000个URL的数据库。每次调用curl来获取网页大约需要4-5秒。

如何优化此功能并缩短获取页面所需的时间?

1 个答案:

答案 0 :(得分:1)

您可以使用curl_multi_*。附加到一个多句柄的curl资源量是它将执行的并行请求量。我通常从20-30个线程开始,具体取决于返回内容的大小(确保您的脚本不会因内存限制而终止)。

请注意,只要运行最慢请求,它就会运行。因此,如果请求超时,您可能会等待很长时间。为避免这种情况,将超时设置为某个可接受的值是个好主意。

您可以在另一个帖子here中看到我的答案中的代码示例。