php - 为网络爬虫优化 PHP CURL

标签 php linux curl curl-multi

我正在尝试使用 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/

相关文章:

php - 重复 mysql 获取导致 php 资源使用率较高

linux - 未找到 Ansible 内部脚本命令

php - 阻止浏览器访问php文件

curl - 为什么 curl 无法使用自签名证书连接到 OpenDJ

terminal - 从命令行调用 PHP 脚本中的函数

php - 在没有 cURL 的情况下在 PHP 中调用 PayPal API

javascript - 尝试使用需要身份验证的 API 使用 Google 脚本从 TDAmeritrade 提取股票报价信息

c++ - 将机器的IP地址发送到服务器

javascript - 如何以重力形式创建一个切换按钮,一旦在 WordPress 中从打开更改为关闭,该按钮就会卡住?

linux - 是否可以写入在同一个 PCIe 插槽上使用不同 PCIe channel 的多个设备?