1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

Мега парсинг

Тема в разделе 'Как сделать...', создана пользователем SimonSmith, 27 дек 2011.

  1. Здравствуйте,
    стоит задача сделать http://news.yam.md/ru/ такую систему. Т.е. парсить новости из рсс с определенных ресурсов и выводить к себе на сайт. Не могу никак придумать логику создания данного скрипта :(

    По началу делал парсинг на прямую с ~5 ресурсов...все вроде нормально, загрузка не большая... но когда добавил еще 5 то все...страница грузиться сек. 10... Решил завозить все в базу потом оттуда в кэш и на сайт. Дальше что делать н3, остановился и все идеи закончили... Помогите, подскажите что можно сделать дальше?
  2. Парсишь поочередно с различных ресурсов с периодичностью, скажем раз в 4 часа, и заливаешь спарсеное в базу ну или в файлм(это как, кому удобно). Это один скрипт.
    Вторым просто выводишь данные из базы на страницу...
  3. первый вариант не подходит т.к. к примеру 15тый ресурс спарсеный через 4 часа станет уже не актуален (в среднем +-30мин от главного ресурса что бы не был отрыв поста новости)
    второй тоже не подходит т.к. если парсить и в базу и из базы то особого эффекта не будет что парсить напрямую или из рсс в базу...
  4. Это не два варианта! Это два скрипта, которые должны работать одновременно! У тебя на сайте может быть несколько сотен пользователей за час, так что теперь для каждого отдельно парсить новости? Так никакой сервак не выдержит... Поэтому один скрипт парсит новости раз в пол часа (час, 10 минут...по боку с какой периодичностью, это задаешь ты исходя из актуальности новостей) и льет их в базу, а второй выводит их из базы для каждого конкретного пользователя и сколько угодно раз...
    SimonSmith нравится это.
  5. да тут без крона не обойтись :-/ а я думал может как-то его обойти а то с ним дела не имел.
    дино спасиб
  6. А тут крон необязателен! Просто каждый раз после того как спарсил новости, оставляй в базе или в отдельном файлике текущую метку времени. А в скрипте выдачи новостей из базы поставь проверку на пройденное время и если прошло времени больше чем заданный интервал, запускать скрипт парсинга новостей
    Ну что то типа:
    PHP:
    if(time()>=($parse_time+60*60*10)){NewsParse();}
  7. Можно использовать filemtime($filename) - дату последней модификации файла (к примеру, того же, в который и были кэшированы новости)
  8. кладите в базу, заюзайте крон, ничего страшного в нем нет. Если есть панелька управления то проблемы вообще не будет его настроить...
  9. крон на хостинге можно даже не настраивать. есть сайты на которые запускают скрипты по расписанию - http://cronjob.ru/
  10. в бд в любом случае нужно класть. Если будешь парсить в прямом эфире, то положишь сервер.
    Сделай таблицу в бд как уже посоветовали, или создавай файлы-метки и при каждом запуске проверяй. крон можно не использовать, просто встрой в страницу вызов проверки.