我正在尝试使用curl编写基于PHP的爬虫程序。我有我需要抓取的20,000-30,000个URL的数据库。每次调用curl来获取网页大约需要4-5秒。
如何优化此功能并缩短获取页面所需的时间?
答案 0 :(得分:1)
您可以使用curl_multi_*
。附加到一个多句柄的curl资源量是它将执行的并行请求量。我通常从20-30个线程开始,具体取决于返回内容的大小(确保您的脚本不会因内存限制而终止)。
请注意,只要运行最慢请求,它就会运行。因此,如果请求超时,您可能会等待很长时间。为避免这种情况,将超时设置为某个可接受的值是个好主意。
您可以在另一个帖子here中看到我的答案中的代码示例。