Как получить данные с другого сайта на свой сайт?

Суть задачи, есть сайт, на нем отображаются определенные данные, мне надо взять эти данные занести к себе в базу и вывести. Данные могу динамически меняться, то есть надо брать данные оттуда с определенной периодичностью.
Данные которые надо брать с сайта это 1 строчка текста.
  • Вопрос задан
  • 17023 просмотра
Пригласить эксперта
Ответы на вопрос 4
Exploding
@Exploding
wtf?
В принципе описание можно было и не писать. Ну или написать просто "дайте парсер"))

Curl и вперед. Что тут еще говорить...
Ответ написан
@kmg4e
Я бы предостерег вас от написания этого всего вручную, если сайт не тривиален.
Гуглим по фразам "PHP parser library", "web-spider PHP" и т.п.

В общем случае нужно использовать готовые инструменты типа
https://github.com/mvdbos/php-spider

Кучу времени себе сэкономите.

Но если сайт простой - то напротив, без всего этого кучу времени сэкономите
;)

Однако если содержимое сайта формируется только через JS, то простой CURL вам проблему не решит.
Придется работать с полноценной эмуляцией браузера, используя headless-браузеры типа SlimerJS или через webDriver с полноценным браузером.
Ответ написан
Комментировать
Как один из вариантов написать бота что будет заходить на сайт и переписывать данные к тебе в БД.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. При любом внешнем обращении к своему сайту - проверка времени кэширования предыдущих данных.
2. Если оно больше установленного - делаем запрос через cURL (встроенный класс в PHP) к стороннему сайту и записываем результат к себе в базу/файл.
Если меньше - не обращаемся к стороннему сайту и используем закэшированные данные (при необходимости).
3. GOTO 1

Таким образом, мы не создаём чрезмерной нагрузки на сайт-донор и имеем постоянное обновление данных. Периодичность запросов к сайту-донору (интервалы времени) - выбираете исходя из целей задачи.
Я советую ставить не менее 30 минут, если данные там меняются редко.

Лучше всего, поищите ссылку на RSS-ленту на стороннем сайте - это будет оптимальным индикатором новой информации.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы