Я сделал базовый веб-сканер для сбора информации с веб-сайта, и я подсчитал, что это займет около 6 часов (умножив количество страниц на время, необходимое для получения информации), но примерно через 30-40 минут цикл по моей функции, он перестает работать, и у меня есть только часть информации, которую я хотел. Когда работает , страница выглядит так, как будто она загружается, и выводит информацию о том, где она находится на экране, но когда она останавливается, страница перестает загружаться, и ввод перестает отображаться.
Есть ли способ сохранить загрузку страницы, чтобы мне не приходилось запускать ее снова каждые 30 минут?
РЕДАКТИРОВАТЬ: Вот мой код
function scrape_ingredients($recipe_url, $recipe_title, $recipe_number, $this_count) {
$page = file_get_contents($recipe_url);
$edited = str_replace("<h2 class=\"ingredients\">", "<h2 class=\"ingredients\"><h2>", $page);
$split = explode("<h2 class=\"ingredients\">", $edited);
preg_match("/<div[^>]*class=\"module-content\">(.*?)<\\/div>/si", $split[1], $ingredients);
$ingred = str_replace("<ul>", "", $ingredients[1]);
$ingred = str_replace("</ul>", "", $ingred);
$ingred = str_replace("<li>", "", $ingred);
$ingred = str_replace("</li>", ", ", $ingred);
echo $ingred;
mysql_query("INSERT INTO food_tags (title, link, ingredients) VALUES ('$recipe_title', '$recipe_url', '$ingred')");
echo "<br><br>Recipes indexed: $recipe_number<hr><br><br>";
}
$get_urls = mysql_query("SELECT * FROM food_recipes WHERE id>3091");
while($row = mysql_fetch_array($get_urls)) {
$count++;
$thiscount++;
scrape_ingredients($row['link'], $row['title'], $count, $thiscount);
sleep(1);
}