php - curl 超时和连接超时的最佳值

标签 php curl

大家好

我正在开发一个小型爬虫引擎,并使用 curl 从各种网站请求页面。问题是我应该将 connection_timeout 和超时值设置为什么建议?我通常会抓取的内容是包含大量图像和文本的页面。

最佳答案

cURL 知道两种不同的超时。
对于 CURLOPT_CONNECTTIMEOUT,站点包含多少文本或它引用多少其他资源(如图像)并不重要,因为这是连接超时,甚至服务器也无法知道所请求页面的大小,直到建立连接。
对于 CURLOPT_TIMEOUT 它确实很重要。即使是大页面也只需要在线路上的几个数据包,但服务器可能需要更多时间来组装输出。重定向和其他事物(例如代理)的数量也会显着增加响应时间。

一般来说,超时的“最佳值”取决于您的要求以及网络和服务器的条件。这些条件可能会发生变化。因此没有“一个最好的值(value)”。
我建议使用相当短的超时并稍后重试失败的下载。

顺便说一句,cURL 不会自动下载响应中引用的资源。您必须通过进一步调用 curl_exec(使用新的超时)手动执行此操作。

关于php - curl 超时和连接超时的最佳值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665068/

相关文章:

php - PHP 中的 sprintf 长度说明符

curl - 有没有办法使用命令行 cURL 跟踪重定向?

PHP CURL - 没有错误的空输出

php - 通配符子域的单独资源

php - 使用 CSRF token 的 Laravel API 请求

PHP PDO Postgres 数据库启动/停止问题

c++ - 将项目与静态构建 curl 链接

php - 如何在不使用“立即购买”按钮的情况下为自定义购物车集成 Paypal IPN

php - 显示 Curl POST 请求 header ?有没有办法做到这一点?

php - 从 Linux 子系统 SSH 到 wamp 服务器 apache/php