В учебных целях пишу свой агрегатор новостей. (браузерный, js, php).
Решил парсинг делать с помощью пхп. Открываю нужные сайты, смотрю как устроена лента, пишу метод парсинга с этого сайта. Для нескольких ресурсов, где новостные ленты строятся одинаково, сделал типовые методы.
Сейчас парсинг происходит так: запускаю php файл, который по по очереди обращается к каждому файлу метода, который уже парсит новости с сайтов и вносит заголовки, тексты и др. инфу в MySQL.
Вопрос: как правильно автоматизировать парсинг? Создавать для каждого метода задачу? Или создать задачу для php, который по очереди запускает каждый метод?
Сейчас два метода всего: один для одного сайта, один для группы сайтов. Что делать, когда методов будет много? (а, как я понимаю, из будет много)
Я просто не знаю, как устроены такие системы. Буду благодарен, если укажете, где это можно узнать (прочитать/посмотреть).
В бд заносите урл парсинга, метод и правила, опционально последнюю дату парсинга и время между парсингом. Выбираете все записи и по очереди проверяете условия времени, подходящие под условия запускаете на парсинг, все это выполняете по крону, крон настраиваете в зависимости от необходимости актуальности.
Уточняющий вопрос: если я хочу чтобы новости парились максимально актуально, как я понимаю, надо брать все источники и просто парсить их подряд. Дошел до конца - начал заново. Тут и крон не нужен, как понимаю. Тогда можно просто в пхп закинуть ссылки на все методы (куча строчек подряд с include 'метод.php', например) и тупо сделать бесконечный цикл? Или система рухнет нафиг?
Ankozar, скорее всего рухнет. По уму - каждый процесс парсинга надо запускать отдельно через консоль. Кроме того - 90% новостных порталов выпускает новости по расписанию - раз в эн минут. Нет смысла их дергать каждую минуту. Куча строчек с инклуд вообще жесть, так 100% ничего хорошего не будет.
Дошел до конца - начал заново.
Во первых - вас забанят с таким подходом нафиг на большинстве ресурсов, просто как спам. Во вторых - свой же хостер надает по шапке, так как ресурсов все это будет жрать как не в себя. И в третьих - пых не идеально подходит для бесконечных циклов. Вообще работа с текстовыми данными не самое простое дело, так нагружать систему не стоит.
Учитывайте что в течении недели у вас легко может накопиться под пару миллионов записей в бд, если источников будет много, условно 20-30 ресурсов вполне могут дать такой объем. Если же вы еще и изображения будете у себя хранить то еще места на несколько сотен гиг готовьте.