хранение и обновление списанных данных в базе данных - PullRequest
0 голосов
/ 22 декабря 2019

Новичок - PHP - Соскребание - Базы данных - Вопрос разработки впереди:

Я создал скрипт PHP, который удаляет (используя curl) статьи с веб-сайта, я его стилизовал и добавил HTML-теги, чтобы его можно было презентовать и загрузитьна общий хостинг через cPanel.

Очистка выполняется с помощью php-функций curl и preg_match_all. Каждая сломанная страница содержит 17 статей, и поэтому, если я пролистаю 100 страниц, это 170 статей. Я убираю только заголовок статьи, URL, краткое изложение статьи и дату публикации, поэтому не так много информации по статье (не по содержанию).

Мой сайт представляет заголовок статьи (который ссылается на первоисточник)и резюме статьи. Я также использую дату публикации статьи в качестве извлекаемой строки, которую я анализирую и показываю статьи ежемесячно (декабрь 2019, ноябрь 2019, и т. Д.).

Время загрузки сайта ужасно. Каждый раз, когда вы открываете сайт, скрипт очищает 100 страниц, и это занимает много времени. Даже при уменьшении количества страниц, подлежащих очистке до 30, загрузка занимает много времени.

Теперь проблема, с которой я сталкиваюсь как неопытного разработчика, заключается в том, как приступить к разработке решения для этого, которое яв итоге могу реализовать в моем общем хостинге (который отличается от VPS тем, что у меня есть контроль ...)

Первая мысль, которая пришла мне в голову, - это то, что я должен хранить очищенные данные в базе данных mysql. и регулярно обновлять его (с помощью cron-задания?), будет ли это работать, это выполнимое решение, которое легко реализовать?

Каков правильный ход проектирования для решения, которое новичок может / должен реализоватьздесь?

Будет ли это что-то вроде:

  1. Очистить данные в первый раз и сохранить в базе данных.
  2. написать скрипт, который раз в день (или больше)собирает новые статьи только с первой страницы без создания дубликатов (вероятно, нужно сравнивать строки заголовков с последним вводом в БД, пока что-то вроде headlineString1 == headlineString2, а затем прекратить вставку в БД).

Ваши мысли и предложения будут высоко оценены. Кстати, я также пытаюсь переделать сайт более профессионально в Laravel в настоящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...