dvguinf
@dvguinf
Веб-разработчик

Как передавать переменную в скрипт parser.php и запускать по cron?

В базе хранится, добавленная пользователем ссылка для парсинга (парсинг доски объявлений) . На данный момент работает так - пользователь заходит в личный кабинет, видит список своих добавленных ссылок для парсинга, нажимает ссылку check и срабатывает скрипт (парсится страница, объявления сверяются с базой, новые добавляются в базу, отправляется на email). Нужно переделать чтобы проверялось само через каждые 15 минут. Нужно использовать CRON. Как переделать существующий скрипт так, чтобы и можно было переменную в скрипт передать и запускать автоматом? Вот существующий код:

<?php
	if($_GET) {
		$id_mess = (int)$_GET['id']; //получаем id ссылки из базы пользователя
	}
		
	$text = get_browse_mess($id_mess); //берем текст ссылки для парсинга

	include('simple_html_dom.php');
		
	$a = $text['text'];
	$html = file_get_html($a); // парсим страницу

	foreach($html->find('.bull-item') as $a) {
		$item['id'] = $a->find('td',0)->getAttribute('data-bulletin-id'); // получаем id объявления
		$item['desc'] = $a->find('.descriptionCell .bulletinLink',0)->plaintext; // получаем описание объявления
		$articles[] = $item;	
	}

	foreach($articles as $x) {
				
			$id = $x['id'];
			$desc =  $x['desc'];

			$id_new = proverka_parse($id); //тут проверяются только новые и записываются в базу 

			for ($i = 0; $i < count($id_new); $i++) { //бежим по циклу и записываем в базу новые объявления

							  mysql_query("INSERT INTO ".PREF."parse SET id_object = '$id_new[0]', str = '$desc'");

// ... тут отправка на email новых объявлений

					}

	}


	$html->clear(); 
	unset($html); 

	
?>
  • Вопрос задан
  • 636 просмотров
Решения вопроса 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Скрипт переделывать не нужно, если он у вас рабочий.
Просто запускайте по крону его и передавайте в GET нужные параметры. Например так:

*/15 * * * * curl --request GET 'http://exemple.ru/parser.php?id=1000'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Почитайте про очереди.
Очередь можно хранить где угодно, хоть в базе.
Крон запускаясь получает данные из очереди и начинает работать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы