Arrays goutte-laravel多重代理迭代
我有10个代理的数组集,设置了2000个关键字来抓取数据。所以我需要在每个代理IP上传递20个关键字,为此,我每小时设置cron hourly,即每小时200个关键字,从数组中随机选择10个代理。代理不应在任何一小时内重复。我使用下面的代码,但没有给出确切的结果Arrays goutte-laravel多重代理迭代,arrays,proxy,cron,laravel-5.4,goutte,Arrays,Proxy,Cron,Laravel 5.4,Goutte,我有10个代理的数组集,设置了2000个关键字来抓取数据。所以我需要在每个代理IP上传递20个关键字,为此,我每小时设置cron hourly,即每小时200个关键字,从数组中随机选择10个代理。代理不应在任何一小时内重复。我使用下面的代码,但没有给出确切的结果 $proxy = [ '0' => 'x.x.x.x:80', '1' => 'x.x.x.x:80',
$proxy = [
'0' => 'x.x.x.x:80',
'1' => 'x.x.x.x:80',
'2' => 'x.x.x.x:80',
'3' => 'x.x.x.x:80',
'4' => 'x.x.x.x:80',
'5' => 'x.x.x.x:80',
'6' => 'x.x.x.x:80',
'7' => 'x.x.x.x:80',
'8' => 'x.x.x.x:80',
'9' => 'x.x.x.x:80'
];
foreach($proxy as $prox){
$website[] = $prox[mt_rand(0, count($prox) - 1)];
$keyword = keyword::take(20)->get();
foreach($keyword as $list){
//scraping code
$client = new Client($website);
$client->setAuth('xxx', 'xxx', 'basic');
$client->setHeader('user-agent', "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3");
$crawler = $client->request('GET', $url);
$status = $client->getResponse()->getStatus();
//store the data in database
}
}
如有任何建议,将不胜感激 嘿!有点不确定你的问题是什么。但是,我的建议是放弃代理处理,使用类似的服务。他们的API将处理代理的旋转,并确保它们被验证,等等,所以你不必担心它!我使用付费代理。如果我使用一个IP,它就可以正常工作。若我运行IP的数组,它会这样给出数组。但是我不知道该怎么做,我不知道该怎么做。如果你有什么想法,请告诉我