我一直在编写一个使用 getAsync 和 Promise\Settle 发出近千个异步请求的脚本。每个页面都请求它,然后使用 Symphony 爬虫过滤器方法进行解析(也很慢,但一个单独的问题。)
我的代码看起来像这样:
$requestArray = [];
$request = new Client($url);
foreach ($thousandItemArray as $item) {
$requestArray[] = $request->getAsync(null, $query);
}
$results = Promise\settle($request)->wait(true);
foreach ($results as $item) {
$item->crawl();
}
有没有一种方法可以在请求的页面进入时抓取它们,而不是等待它们全部然后抓取。如果可能的话,我是否认为这会加快速度?
提前感谢您的帮助。