<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Как получить скриншот сайта через URL, используя PHP

Как получить скриншот сайта через URL, используя PHP

Создание снимков сайта в реальном времени используется для различных целей в веб-программировании. Существует множество сервисов (прикладных интерфейсов), позволяющих сделать скриншот страницы. Но, если вам нужно сделать свой собственный скрипт для создания скриншота сайта через URL, вы можете это легко сделать, используя PHP и Google PageSpeed Insights API.

В основном, Google PageSpeed Insights API используется для оценки производительности веб-страницы. Но, помимо этого, вы можете использовать Google PageSpeed Insights API, для получения снимка страниц сайта через URL адрес.

Следующий пример скрипта делает снимок произвольной страницы сайта URL адрес, которой определяется пользователем. Затем этот снимок, отображается на странице.

Получение скриншота сайта через URL.

Для создания снимка экрана, на сервис Google PageSpeed Insights необходимо послать запрос со следующими параметрами.

  1. url: определяет URL адрес сайта
  2. screenshot: этот параметр нужно установить в true для извлечения скриншота
  // адрес сайта
  $url = "http://www.myrusakov.ru/";

  // вызов методов сервиса
  $api_data = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true");
  // расшифровка данных** json
  $api_data = json_decode($api_data, true);

  // данные снимка
  $screenshot = $api_data['screenshot']['data'];
  $screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
 
  // отображаем изображение
  echo "<img src=\"data:image/jpeg;base64,".$screenshot."\" />";

Захват снимка экрана через URL.

В этом примере мы создадим форму, в которую пользователь сможет ввести адрес страницы, скриншот которой он хочет получить.

Форма достаточно проста: она содержит одно поле ввода, которое принимает адрес сайта. После нажатия кнопки в дело вступает PHP скрипт.

  <form method="post" action="make_shot.php" >
    <p>Адрес сайта: <input type="text" name="url" value="" /></p>
    <input type="submit" name="submit" value="СДЕЛАТЬ СНИМОК">
  </form>

До того момента, как мы непосредственно воспользуемся сервисом для создания снимков сайтов, нам необходимо провести проверку введенных пользователем данных на корректность. Вот код:

  <?php

  if(!empty($_POST['url'])){

    // адрес сайта
    $url = $_POST['url'];

    if(filter_var($url, FILTER_VALIDATE_URL)){
      // вызов Google PageSpeed Insights API
      $api_data = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true");

      // расшифровка json данных
      $api_data = json_decode($api_data, true);

      // данные снимка
      $screenshot = $api_data['screenshot']['data'];
      $screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);

      // отобразить изображение
      echo "<img src=\"data:image/jpeg;base64,".$screenshot."\" />";
    } else {
      echo "Пожалуйста, введите правильный URL.";
    }
  }
  ?>

Таким образом, все за 10 минут можно создать собственный сервис по созданию скриншотов сайта. На этом все. Спасибо.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

smokeman smokeman 13.10.2019 19:43:54

Слишком мелкий скрин получается, нельзя получать покрупнее?

Ответить

and777 and777 18.05.2020 02:00:02

Статья бесполезна, тк указанная версия Google PageSpeed Insights API (v2) уже давно не активна. Думаю, что необходимо отредактировать статью с учётом текущей версии Google PageSpeed Insights API (текущая версия - v5)

Ответить

denis_kz denis_kz 12.07.2020 11:18:14

Мы решили не париться с этим на PHP, а использовали готовый сервис https://pikwy.com, убили сразу пару зайцев =)) Статья интересная, но есть один минус, если страницы нет в индексе гугла, то скрина не будет!!!

Ответить

nevius nevius 22.01.2023 14:08:40

Нам не подошло. Мелкий скриншот создается. Наша задача была создавать через заданный интервал времени скриншот страниц. Сперва сами пытались разработать что-то на основе этого, но сложновато. В итоге перепробовали разные сторонние сервисы. Подошел больше всего screen-archive.ru. Можно создавать архив скриншотов сайта. Правда с платными функциями, но при небольшом количестве страниц - самое то

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.