У меня возникли проблемы с пониманием, как решить этот цикл:
Я разрабатываю для себя небольшой скребок и пытаюсь выяснить, как выполнить цикл в пределах 2 методов, пока все ссылки не будут получены с веб-сайта.
Я уже получаю ссылки с первой страницы, но проблема в том, что я не могу сделать цикл для проверки уже извлеченных новых ссылок:
Вот мой код:
$scrap->fetchlinks($url);//I scrap the links from the first page from a website
//for each one found I insert the url in the DB with status = "n"
foreach ($scrap->results as $result) {
if ($result) {
echo "$result \n";
$crawler->insertUrl($result);
//I select all the links with status = "n" to perform a scrap the stored links
$urlStatusNList = $crawler->selectUrlByStatus("n");
while (sizeof($urlStatusNList > 1)){
foreach($urlStatusNList as $sl){
$scrap->fetchlinks($sl->url); // I suppose it would retrieve all the new sublinks
$crawler->insertUrl($sl->url); // insert the sublinks in the db
$crawler->updateUrlByIdStatus($sl->id, "s"); //update the link scraped with status = "s", so I will not check these links again
//here I would like to return the loop for each new link in the db with status='n' until the system can not retrieve more links and stops with the script execution
}
}
}
}
Любая помощь очень приветствуется. Заранее спасибо!