我正在尝试使用 curl 编写基于 PHP 的爬虫程序。我有 20,000-30,000 个 URL 的数据库,我必须抓取这些 URL。每次调用 curl 以获取网页大约需要 4-5 秒。
我如何优化它并减少获取页面所需的时间?
最佳答案
您可以为此使用 curl_multi_*
。您附加到一个多句柄的 curl 资源量就是它将执行的并行请求量。我通常从 20-30 个线程开始,具体取决于返回内容的大小(确保您的脚本不会因内存限制而终止)。
请注意,只要运行最慢 请求,它就会运行。因此,如果请求超时,您可能会等待很长时间。为避免这种情况,将超时设置为某个可接受的值可能是个好主意。
您可以在另一个线程中查看我的回答中的代码示例 here .
关于php - 为网络爬虫优化 PHP CURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738629/