Создание страницы авторизации с помощью Google OAuth API
От автора: в этой статье я собираюсь объяснить, как интегрировать авторизацию Google на ваш сайт на PHP. Мы будем использовать Google OAuth API, который является простым и мощным способом добавить вход через Google на ваш сайт.
Как веб-пользователь, вы, вероятно, испытывали трудности с управлением различными учетными записями для разных сайтов, в частности, когда у вас есть несколько паролей для разных сервисов, и веб-сайт просит вас создать еще одну учетную запись на их сайте.
Чтобы решить эту проблему, вы можете предложить функцию единого входа, позволяющую посетителям использовать существующие учетные данные для открытия учетной записи на вашем сайте. В настоящее время многие веб-сайты позволяют пользователям входить в систему, используя свои существующие учетные записи в Google, Facebook* или в других популярных сервисах. Это удобный способ для новых пользователей зарегистрироваться на стороннем сайте вместо регистрации новой учетной записи с еще одним именем пользователя и паролем.
В этом посте мы будем использовать API авторизации Google OAuth, который позволяет пользователям входить в систему с использованием существующих учетных записей Google. Конечно, пользователи по-прежнему должны иметь возможность зарегистрироваться с помощью обычной формы регистрации на вашем сайте, но предоставление входа через Google или чего-то подобного может помочь сохранить нормальный коэффициент удержания пользователей.
Как работает авторизация Google
Во-первых, давайте разберемся, как работает авторизация через Google на вашем сайте.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
На странице входа в систему вашего сайта пользователи могут выбрать один из двух вариантов входа. Первый — указать имя пользователя и пароль, если у них уже есть учетная запись на вашем сайте. А другой заключается в том, чтобы войти на сайт с помощью существующей учетной записи Google.
Когда они нажимают кнопку «Войти через Google», запускается поток авторизации через Google и он переводит пользователей на сайт Google. Оказавшись там, они входят в систему со своими учетными данными Google, после чего они будут перенаправлены на страницу подтверждения.
На странице подтверждения у пользователей будет запрошено разрешение на передачу информации о своей учетной записи Google на сторонний сайт. В этом случае сторонний сайт — это сайт, на котором они хотят использовать свою учетную запись Google для входа в систему. Им будут представлены два варианта: они могут разрешить или запретить это.
После того, как они разрешат поделиться своей информацией со сторонним сайтом, пользователи будут перенаправлены на сторонний сайт, откуда они инициировали поток входа в Google.
На этом этапе пользователь вошел в систему с помощью Google, а сторонний сайт имеет доступ к информации профиля пользователя, которую можно использовать для создания учетной записи и входа в систему.
Это основной процесс интеграции авторизации Google на вашем сайте. В оставшейся части поста мы реализуем этот поток входа в рабочем примере на PHP.
Настройка проекта для авторизации через Google
В этом разделе мы рассмотрим основные настройки, необходимые для интеграции авторизации через Google с вашим веб-сайтом на PHP.
Создайте проект Google API
Во-первых, вам нужно создать приложение в Google, которое позволит вам зарегистрировать свой сайт в Google. Это позволяет вам настроить основную информацию о вашем сайте, а также пару технических деталей.
После того, как вы вошли в систему с помощью Google, откройте консоль разработчиков Google. Откроется страница панели инструментов Google, как показано на следующем снимке экрана.
В верхнем левом меню нажмите на ссылку «Выбрать проект». Откроется всплывающее окно, как показано на снимке экрана.
Нажмите на ссылку «Новый проект», в появившейся панели вам нужно будет ввести название проекта и другую информацию. Заполните необходимые данные, как показано в следующем снимке экрана.
Нажмите кнопку «Создать», чтобы сохранить новый проект. Вы будете перенаправлены на страницу панели инструментов. Нажмите «Учетные данные» в левой боковой панели и перейдите на вкладку настроек OAuth.
На этой странице вам нужно ввести информацию о приложении, такую как название приложения, логотип и некоторые другие данные. Заполните необходимые данные и сохраните их. Для целей тестирования достаточно просто ввести имя приложения.
Затем нажмите «Учетные данные» в левой боковой панели. Должно отобразиться поле «Учетные данные API», как показано на следующем снимке экрана.
Нажмите «Учетные данные клиента»> «Идентификатор клиента OAuth», чтобы создать новый набор учетных данных для приложения. Отобразится панель, в которой вам будет предложено выбрать нужный вариант. В нашем случае выберите опцию «Веб-приложение» и нажмите кнопку «Создать». Вам будет предложено предоставить несколько более подробную информацию.
Введите данные, показанные на снимке экрана выше, и сохраните их! Конечно, вам нужно установить URI перенаправления в соответствии с настройками вашего приложения. Это URL, по которому пользователь будет перенаправлен после входа в систему.
На данный момент мы создали клиентское приложение Google OAuth2, и теперь нам нужно получить возможность использовать это приложение для интеграции на нашем сайте входа в систему через Google. Пожалуйста, запишите идентификатор клиента и секретный ключ клиента, они потребуются при настройке приложения с нашей стороны. Вы всегда можете найти идентификатор клиента и секретный ключ клиента при редактировании приложения.
Установите клиентскую библиотеку Google PHP SDK
В этом разделе мы рассмотрим, как установить клиентскую библиотеку Google PHP API. Есть два варианта установки:
Загрузить и установить файлы библиотеки вручную.
Использовать Composer
Если вы предпочитаете установить его с помощью Composer, вам просто нужно выполнить следующую команду.
Как скопировать сайт целиком и переделать под себя
“Новое — это хорошо забытое старое…”. Кажется, в мире интернета смысл этой поговорки немного изменился. В условиях миллиардной аудитории никто не ждет, пока какой-то проект или красивый лендинг забылся. Копирование, копирование и еще раз копирование — это философия не только небольших частных предпринимателей, которые просматривают сайт-визитку или витрину магазина где-то за океаном. Копируются соцсети, мессенджеры, маркетплейсы, различные сервисы для бизнеса. И плагиат распространен в мире арбитража трафика.
Увидели красивый лендинг или крутой преленд с высокой конверсией? Необязательно тратить много времени и делать все с нуля. Если не копировать, то какой смысл в SPY-инструментах. Но простое использование команд “Ctrl+C” и “Ctrl+V” не работает. Да и при копировании страницы теряется код, нарушается верстка, пропадают картинки, отсутствует анимация. Не работают формы обратной связи, партнерские ссылки для переадресации на сайт рекламодателя засчитываются владельцу донора.
Можно ли скопировать сайт так, чтобы его можно было отредактировать под себя и залить на сервер? И как это сделать? Об этом сегодня и поговорим. Усаживайтесь поудобнее, впереди вас ожидает только полезная информация и рабочие советы.
Можно ли скопировать любой сайт
Если коротко — не все так однозначно… Из теории мы знаем, что при переходе на какой-то сайт, браузер подает запрос, сервер ему отвечает и передает данные в виде html-кода. Это язык разметки, после загрузки данных в окне web-браузера мы видим содержимое сайта. При этом локальная копия исходного кода хранится в буфере. Кеш временно сохраняться на жестком диске в папке C:\Users\USERNAME\AppData\Local\Google\Chrome. Достаточно извлечь из памяти данные страницы и сохранить. Но, было бы все так просто, каждый арбитражник да каждый школьник уже создал бы собственный *Facebook, Youtube, TikTok или криптобиржу.
Но современный сайт — это больше, чем веб-документ в формате html. Масштабные проекты да и простые лендинги чаще пишутся с использованием языка PHP или создаются на базе систем управления контентом (CMS), таких как WordPress, Joomla, MODx, Drupal. Собранные в визуальном конструкторе за 10 минут блоги и лендинги на их основе также в своей основе имеют код php. Структура таких порталов, даже небольших, двухуровневая: frontend — то, с чем взаимодействуют пользователи (именно взаимодействуют, а не просто просматривают), и backend — часть, исполняемая на сервере.
Современный сайт может быть полностью построен на базе динамических скриптов (например, адаптивные лендинги, которые подстраиваются под размер экрана) или содержать отдельные элементы. Это может быть “калькулятор” для расчета заказа, форма обратной связи, курсы валют или другие данные, которые могут меняться.
Можно скопировать только те скрипты, которые исполняются на стороне посетителя. Серверная часть для скачивания не доступна. Но исходный код и ответ сервера, который видят пользователь — это не одно и то же. При каждом обращении данные могут отличаться. Вы можете сохранить себе на компьютер код, выданные сервером. Но в дальнейшем такой проект без существенной доработки бек-энда работать не будет. После загрузки на сервер максимум, что можно получить — статический сайт с множеством проблем:
- сбивается верстка на адаптивных сайтах: съезжают кнопки, таблицы, текст;
- часть информации, как текстового, так и графического контента, становится недоступной;
- не работают формы, в некоторых случаях при заполнении полей обратной связи заявки будет получать конкурент, у которого вы “своровали” сайт;
- ни о какой адаптивности говорить не стоит: сайт будет всегда адаптированным под размер экрана устройства, с которого было копировано.
Хорошая новость в том, что простые сайты скопировать можно и даже обеспечить их корректную работу после минимальных правок в визуальном редакторе и ввода штучных изменений в код. Это лендинги, прелендинги, сайты-визитки и даже небольшие интернет-магазины на несколько страниц.
Загрузить можно даже сайт, который работает с использованием динамических таблиц. Правда мы получим статическую страницу с урезанными функциями (например, без адаптации под размер экрана).
А зачем вообще копировать чужой сайт
Если перефразировать слова Остина Клеона из книги “Кради как художник”, копирование — это творческий процесс, если мы, конечно, просто не выдаем чужие наработки за свои. И он ведет нас к прогрессу. Используя готовые образцы за основу, мы создаем что-то новое. Становится актуальным вопрос: что хорошо, а что плохо? “Существует только то, что достойно или недостойно быть позаимствованным…”.
Копирование помогает переосмыслить чужие идеи и сделать что-то лучшее. Для веб-программистов и верстальщиков — это возможность разобрать чужой код, изучить особенности работы скриптов, анимацию, чтобы потом использовать эти идеи в новых проектах.
Актуально копирование сайтов в арбитраже трафика и среди маркетологов, которые запускают рекламные кампании в сети. Можно потратить месяцы и тысячи долларов (это при самых скромных подсчетах) на тестирование лендингов и прелендингов, сайтов визиток и одностраничных магазинов (неважно, созданным с нуля или на базе шаблонов). Но все равно не получить результат.
Альтернатива — найти Landing Page через SPY-инструмент, посмотреть статистику, выбрать и, естественно, доработать под себя. Второй способ занимает немного времени, буквально часы. И бонус — можно сразу скопировать рабочую связку типа “баннер+лендинг”, “прелендинг+лендинг” или даже “баннер+преленд+лендинг пейдж”.
Последствия копирования чужих сайтов
Прежде чем переходить непосредственно к основному разделу с советами, вспомним о последствиях, которые могут ожидать при копировании:
- административная ответственность. За копирование чужого сайта (прежде всего это касается дизайна и логотипов) на вас могут подать в суд. Но это возможно только в случаях, когда скопирован уникальный портал, например интернет-магазин, который разрабатывался с нуля, а не лендинг по бесплатному шаблону;
- владелец оригинала через суд может заставить вас удалить свой ресурс, если вы копируете магазин или страницу захвата. Вы потеряете клиентов, которых успели привлечь, усилия на доработку и продвижение пропадут зря;
- вы теряете часть клиентов, когда используете чужой дизайн: клиенты будут ассоциировать вас с компанией-донором сайта, в следующий раз могут обратиться в другую компанию;
- возможна просадка конверсии — в случае, если лендинг уже надоел аудитории, пользователи будут его игнорировать, так как часть целевой аудитории уже отклонила предложение или воспользовалась им.
Все же в арбитраже, если успеть вовремя заметить лендинги и прелендинги с высокой конверсией, копирование сайта позволяет быстро запустить рабочий креатив и увеличить ROI, сберегая время и силы на разработку. А web-программисты получают образец для тренировок и разбора удачных решений.
Как скачать веб сайт на компьютер через браузер
Самый очевидный способ скопировать web-сайт — скачать его с помощью браузера. При этом доступно сразу два способа:
- народный Ctrl+S (“Страница” — “Сохранить как…” в Opera. В Chrome опция запрятана в “Дополнительных инструментах”) — метод, который сразу приходит на ум;
- копирование кода страницы через “Инструменты разработчика” в меню “Разработка” (в браузерах на базе Google Chrome — в меню “Дополнительные инструменты”).
Сохранение web-страницы в Opera
Кажется, все просто, зачем еще заморачиваться. Используем команду “Ctrl+S” и получаем готовый html-файл. Не все так, как кажется. Функция сохранения создана, в первую очередь, чтобы можно было просматривать информацию автономно, когда нет доступа к интернету. И это не самый удобный способ копирования сайта.
Доступно три варианта скачивания:
- только html;
- одним файлом;
- страница полностью.
Варианты скачивания: только html, одним файлом, страница полностью
Первый метод предполагает сохранение только html-разметки. Если такую страницу просматривать без интернета или попытаться установить на сервер, то мы увидим только таблицы, заголовки. Большая часть контента, картинки, формы, виджеты и даже часть текста, будет утеряна.
Очевидно, нужно выбрать пункт “Страница полностью” или “Одним файлом”. В первом случае будет сохранен html-файл вместе с папкой, в которой сохраняются файлы стилей, шрифты, картинки, ссылки на другие страницы. Во втором создается веб-архив: HTML документ вместе с javascript, css, аудио и видео, закодированный по методу MIME (.mhtml) — по такому же принципу кодируются сообщения электронной почты.
И mhtml-архив и html-докумет с файлами позволяют просматривать содержимое страницы в автономном режиме. Но в случае загрузки на сервер сайт работать не будет или с заметными искажениями, хотя сохраненные страницы можно открыть через визуальный редактор (и даже через текстовый редактор типа MS Word), отредактировать и уже сохранить в правильном формате.
Но главный недостаток — за один раз вы сохраняете только одну страницу. Если это большой сайт, на выходе получится много папок, не связанных между собой, которые придется связывать вручную.
Более продвинутый способ копирования — через инструменты разработчика. Позволяет скопировать не только саму html-разметку, но и структуру файлов сайта с каталогами.
“Инструменты разработчика” в Opera в меню “Разработка”
Чтобы скопировать сайт:
- входим в меню “Разработка”;
- выбираем “Инструменты разработчика” (Ctrl+I или Ctrl+Shift+I) — перед нами появляются DevTools;
- выбираем вкладку “Sources” — в левой части окна открывается окно с деревом каталогов;
- просматриваем структуру страницы — обычно файлы сайта идут в первой папке, ниже — папки с внешними скриптами (обычно, их копировать не нужно);
- создаем на локальном хранилище (жесткий диск, флешка, облачное хранилище, куда мы будем копировать страницу) папку с названием страницы, внутри создаем каталоги в соответствии со структурой зеркала сайта;
- сохраняем поочередно все файлы, кликнув по ним правой кнопкой мыши и выбрав команду “Save As”. К сожалению, скопировать все файлы одним махом или папку целиком возможности нет;
- копируем название файлов (символы в названии после вопросительного знака (“?”) копировать необязательно), если оно не подставилось автоматически;
- если нужно скачать изображение, то мы кликаем по нему в каталоге в левой части окна, после этого нажимаем по самому объекту правой кнопкой мышки и выбираем все ту же команду — “Save As”.
Повторяем процедуру для всех страниц сайта. Естественно, если названия папок с контентом совпадают, то на сервере используется общий каталог, создавать новый на локальном диске не нужно.
Меню Разработки вкладка Sources: просмотр структуры страницы и скачать файлы
Если инструментов разработчика нет, можно пойти по более длинному пути. Создаем папку с названием сайта, внутри три каталога: img — для изображений, видео; css — для файлов стилей; js — для файлов скриптов. Открываем главную страницу копируемого сайта. Нажимаем “Ctrl+U” — браузер откроет исходный код страницы. Копируем его и вставляем в блокнот. Сохраняем файл в папке сайта (корневой папке) под именем index.html. В исходном коде находим ссылки на скрипты, изображения (заканчиваются расширением .jpg, .png), стили (css), скрипты (js) — кликаем по ним. Код сохраняем с использованием блокнота. Помещаем в папки с соответствующим названием. По такой же схеме сохраняем все страницы.
Исходный код web-страницы
Правда смысла в этом методе немного. В современных браузерах, даже небольших авторских проектах, реализованы инструменты разработчика. Да и удобнее пользоваться парсерами, способными в автоматическом режиме просканировать все страницы и скачать сайт целиком.
Специализированные программы для копирования сайта — парсеры
Парсеры, они же грабберы или рипперы — это специализированные программы, которые постранично сканируют сайт или только выбранные разделы, скачивают исходный код и контент, систематизируют данные в автоматическом режиме. У парсеров, как и у обычного браузера, нет доступа к данным, сохраненным на сервере: на это способен лишь хакерский софт, и то только после внедрения шпионского ПО (червя или трояна), которое сольет пароли и логины для доступа или напрямую данные с сервера злоумышленнику. Как вы понимаете, такой софт в свободном доступе не лежит.
Принцип работы парсеров такой же, как и при постраничном скачивании с помощью команды “Сохранить как…” или через “Инструменты разработчика”. Только поочередно веб-страницы открывает не пользователь, а бот, который имитирует поведение человека. Похожий алгоритм у роботов поисковых систем.
Юзер вводит url-адрес в адресной строке граббера. Приложение подает запрос серверу, тот в ответ выдает html-код. Дальше бот считывает страницу и начинает ее сканирование: ищет все внутренние ссылки и отправляет запрос по ним, потом снова считывает и сохраняет код, стили, скрипты, мультимедиа, контент. Процесс повторяется, пока приложение не сканирует весь сайт.
Парсеры не смогут сделать идентичную копию сайта. Они сохраняют лишь его статический html-слепок (зеркальную копию или дубликат). Но для небольших лендингов часто этого достаточно, где исходный код и страница в браузере — идентичны. И главный бонус — такой софт облегчает работу арбитражников:
- экономит время, десятки часов;
- автоматически систематизирует файлы, создавая структуру сайта, которую можно загрузить на сервер и запустить;
- снижает вероятность механической ошибки, когда какой-то файл сохранен не под правильным именем или помещен не в тот каталог.
Недостаток — по-прежнему невозможно скачать исходный код. Только слепок или зеркальную копию с контентом и ссылками, которую выдает сервер. Остальные минусы зависят от конкретного приложения. Например, некоторое ПО просто скачивает с каждой страницы всю информацию, которую сможет найти. В итоге получается много дублей картинок и скриптов. Сайт размером в 20 мегабайт может разрастись до 200 мб.
В сети выложено много парсеров как бесплатных, так и платных. Есть софт в виде программного обеспечения для установки на локальное устройство (для Windows, Android, MacOS, iOS), скрипты для установки на сервер, онлайн-сервисы.
Специализированные программы для установки на компьютер
WinHTTrack WebSite Copier
WinHTTrack WebSite Copier — приложение для скачивания сайтов, которое распространяется бесплатно. Есть версии для Windows, в том числе устаревших версий Windows 2000, XP (WinHTTrack), Linux, BSD (WebHTTrack). Основная задача — скачивание и упорядочивание файлов. На выходе получаем готовую папку с зеркальной копией сайта, которую можно залить на сервер.
Страница HTTrack с настройками
У софта есть много дополнительных опций:
- скачивание закрытых разделов сайта (при наличии доступа — логина и пароля), доступных авторизованным пользователям;
- создание резервных копий в несколько кликов;
- обновление уже скачанного сайта — приложение сопоставит и добавит обновленные разделы или внесет изменения в скачанные страницы;
- возможно одновременное скачивание нескольких сайтов с перекрестными ссылками или скачивание вместе с сайтом страниц других ресурсов, на которые ведут внешние ссылки;
- гибкая настройка формата структуры сохраненного сайта (одним файлом mhtml или сайта полностью), ассоциаций MIME, добавление прокси и др.;
- возобновление прерванных загрузок и другие опции.
Cyotek WebCopy
Еще один бесплатный парсер с широкими возможностями. Софт автоматически упорядочивает структуру, копирует скрытые части сайта, которые доступны только после аутентификации. Полезная функция — захват форм. В отличие от других грабберов, Cyotel WebCopy умеет копировать с сохранением работоспособности формы доступа, обратной связи, заказа, которые реализованы на сервере через динамические скрипты php.
WebCopy — интерфейс со страницей сканирования
В отличие от HTTrack, есть версия только для Windows, зато здесь более современный и приятный дизайн.
- автоматическое упорядочивание структуры. Парсер сопоставляет все ссылки и переназначает путь к ним после копирования, исключает появление дубликатов;
- можно вручную установить формат, по которому приложение будет упорядочивать структуру;
- доступно сохранение контента в один файл (MIME html);
- опция захвата форм, возможно скачивание закрытых разделов, доступных после авторизации;
- приложение выводит дерево ссылок, в котором можно наглядно посмотреть структуру сайта;
- фильтры, позволяющие сохранить только скрипты или изображения;
- приложение устроено так, чтобы создать зеркальную копию сайта, которая будет работать автономно.
Это универсальная утилита с множеством полезных функций. Умеет сканировать и копировать сайты по http, https, ftp, ftps. Если оценивать по возможностях — это одно из самых мощных приложений. Умеет сканировать сайт и сохранять исходный код вместе с контентом в один файл (mhtml для локального просмотра), создавать зеркальные копии сайта, которые в дальнейшем можно загрузить на новый сервер. Также среди функций — скачивание исходного кода с сервера по ftp (для разработчиков и владельцев).
Утилита изначально написана для linux, но потом создатели сделали компиляцию для Windows. Но визуальная оболочка отсутствует. Управление граббером через командную строку.
Окно командной строки со списком команд Wget
Скачать дистрибутив для Linux можно здесь. Версия для Windows (файл .exe) — здесь.
Процесс установки на Windows:
- загружаем файл или zip-архив;
- извлекаем файл wget.exe, копируем его в папку Windows/System32 (или в другой каталог, который позволяет запускать утилиту через командную строку из любого места);
- запускаем командную строку: прописываем в строке поиска на панели задач cmd (Windows 10, 11) или Win + X — “Выполнить”, пишем команду cmd, нажимаем кнопку ОК;
- вводим команду “wget -h”, чтобы увидеть список команд с расшифровкой;
- для удобства создаем каталог в корневой папке на диске С, куда будут загружаться файлы сайтов (cd / — команда, чтобы переместиться в корневой каталог, md wgetdown — создать папку с названием “wgetdown”).
- сделать зеркало сайта: wget -r https://www.yoursite.com;
- сделать копию сайта и локализовать ссылки: wget —convert-links -r https://www.yoursite.com;
- сделать оффлайн-зеркало с локализацией ссылок: wget —mirror —convert-links —adjust-extension —page-requisites —no-parent https://www.yoursite.com;
- сохранить зеркало сайта как .html: wget —html-extension -r https://www.yoursite.com;
- загрузить изображения: wget -A «*.jpg» -r https://www.yoursite.com.
Web ScrapBook
Браузерное расширение для Chrome, позволяет в несколько кликов скачать копию сайта или отдельную страницу. Также позволяет просматривать на браузере архивированные страницы, когда доступ к интернету отсутствует.
Интерфейс расширения Web ScrapBook со списком функций
- удобное управление в один клик;
- минимум функций.
Teleport Pro
Интерфейс приложения Teleport Pro
Одно из самых популярных приложений для копирования сайтов и лендингов среди арбитражников. Приложение может скачать сайт целиком или отдельные страницы со всеми ссылками и адаптацией для просмотра на компьютере. Граббер умеет создавать статические дубликаты лендингов и прелендингов, которые можно запускать на сервере.
- автоматическое восстановление структуры сайта;
- есть возможность настроить адреса ссылок;
- поиск по ключевым словам;
- загрузка скрытых разделов, защищенных паролем;
- создание дубликатов сайта;
- одновременное сканирование нескольких адресов.
Недостаток — устаревший дизайн, немного запутанный интерфейс.
Offline Explorer
Один из самых продвинутых грабберов с большим набором функций, интуитивно понятным и современным интерфейсом. Но он платный. Приложение умеет захватывать сайты целиком или отдельные страницы. С высокой точностью воспроизводит дубликаты страниц в социальных сетях (*Facebook, YouTube, *Instagram), может сканировать защищенные паролем разделы. Разработан на движке Chromium.
Интерфейс приложения Offline Explorer
- одновременная загрузка нескольких проектов;
- автоматическое скачивание при появлении обновлений (резервное архивирование);
- загрузка по HTTP, FTP;
- реализовано сканирование и копирование страниц в социальных сетях.
Webcopier
Еще один платный проект. Webcopier изначально разработан для корпоративного использования. Это одновременно веб-браузер и инструмент, позволяет в несколько кликов сохранять интернет-каталоги, брошюры, расшаривать данные внутри локальной сети. Для разработчиков реализована возможность поиска мертвых ссылок и анализа структуры сайта.
Маркетологам риппер дает возможность быстро копировать страницы лендингов для дальнейшего редактирования.
- парсер имеет встроенные средства просмотра;
- копирование страниц в несколько кликов;
- сканирование, просмотр структуры;
- загрузка сайта с автоматической корректировкой структуры;
- есть версии для Windows, Mac, Android.
Плагин Save Page WE
Расширение для браузеров Chrome, Firefox. Фактически плагин копирует опцию “Save As…”, но более качественно упорядочивает структуру файлов. И имеет несколько полезных функций, таких как извлечение ссылок и файлов (изображений, видео).
Меню плагина Save Page WE
Онлайн-сервисы для копирования сайтов
DollySites
Это не совсем онлайн-сервис, а скрипт, который можно установить на свой сервер (в лицензию входит возможность установки на три IP). Позволяет скачать и отредактировать сайт в несколько кликов, поддерживает прокси и tor-сайты (.union). Есть инструмент захвата и адаптации форм обратной связи. По набору функций DollySite превосходит многие оффлайн-пакеты для локальной установки. После регистрации открывается личный кабинет, где можно управлять загрузками.
Админка DollySite
- встроенный редактор;
- можно в несколько кликов заменить картинку или текст;
- высокая скорость работы за счет серверных ресурсов;
- можно перевести сайт с помощью встроенного переводчика.
Главный недостаток — скрипт платный. Демо-версия на один час без функции экспорта.
Web2zip
Простой сервис, который позволяет сделать дубликат сайта или лендинга. Функция у приложения только одна — сохранить сайт. Зато инструмент сразу создает zip-архив, готовый к загрузке на сервер и распаковке. Работает без регистрации и авторизации.
Страница сервиса web2zip
Saveweb2zip
Еще один сервис для создания дубликата сайта в один клик с упаковкой в zip. Но у сервиса есть несколько дополнительных функций:
- настройка форм обратной связи, интеграция с партнерками;
- копирование мобильной версии.
Страница сервиса Saveweb2zi
Saveweb2zip — один из лучших инструментов арбитражника, который позволяет быстро копировать лендинги и в один клик адаптировать их для захвата клиентов.
RoboTools
Роботулс пошел дальше и предлагает скопировать не только актуальную версию сайта, но и версии за прошлые годы из веб-архивов. Инструмент специально разработан для создания сателлитов. Сервис позволяет скачать сайт за несколько минут. Для загрузки доступен zip-архив, который можно отредактировать или загрузить на сервер и сразу же запустить (после распаковки). Сайт платный — оплата за страницы. Но скачивание с некоторыми ограничениями доступно бесплатно в демо-версии.
Главная страница Robotools
Webparse.ru
Сервис для скачивания сайтов в один клик, но с дополнительными функциями: скачивание мобильной версии, сканирование и просмотр контента, загрузка страницы или всего ресурса целиком. Сайт платный, есть пробная версия с одним бесплатным скачиванием.
Главная страница и скрин кабинета webparse.ru
WebSiteDownloader
Простой инструмент для скачивания сайтов в один клик без регистрации и ограничений. Вставляем ссылку, нажимаем кнопку “Download”. Полезная функция — поддержка скачивания из веб-архива Wayback Machine.
Страница сервиса WebSiteDownloader
Копирование с использованием услуг фрилансеров и компаний
Еще один способ скопировать сайт — обратиться в веб-студию или к фрилансеру через одну из бирж фриланса. Метод подойдет, если вам понравился лендинг, сайт-визитка или небольшой магазин, сайт с описанием услуг и хочется себе такой же. Это не вариант для арбитражников: от звонка и заключения договора до получения готового сайта уйдет пару дней. Зато вариант для небольших предпринимателей, блогеров, у которых нет возможности и надобности разбираться в тонкостях веб-дизайна, работы с html-разметкой, подключения баз данных и настройки хостингов.
При обращении к фрилансерам, возможны два варианта:
- копирование сайта через парсер с редактированием кода и структуры, изменением контактов, форм обратной связи, некоторых фото. Дизайн будет идентичным, но новые функции добавить практически невозможно. Цена — в пределах 800-1000 рублей. Время работы — 1-2 дня;
- визуальное копирование с помощью конструктора (сборка нового сайта с нуля по шаблону). Этот вариант дороже, в пределах 5000 — 8000 рублей за простой лендинг, сайт на 3-5 страниц. Будут небольшие отличия в дизайне, анимации. Зато можно добавить функции по желанию. Время — до 10 дней.
В любом случае вы получаете сайт с правильной версткой без ошибок, с работающими формами обратной связи.
Студии, где можно заказать услугу копирования сайта:
- студия SPECHEET (specheet.ru). Копирование (парсинг) — 790 рублей, от одного дня. Создание копии лендинга с нуля — от 7000 руб.;
- pro — сервис копирования сайтов (парсинга). Предлагает три тарифа: эконом за 390 руб. — копирование парсером с удалением трекеров и жучков; Эконом+ за 590 руб. — дополнительно редактируется форма приема заявок; Стандарт за 990 руб. — копирование с удалением трекеров, редактированием формы приема заявок, замена текста, контактов, установка Я.Метрики, залив на хостинг;
- веб-агентство pixel — предлагает комплексное копирование сайта (дизайна, форм, скриптов), цены рассчитываются индивидуально.
Гайд: как скачать весь сайт
Мы уже описали, как копировать сайт постранично с помощью встроенных инструментов браузера. Теперь подробная инструкция по использованию программ и сервисов.
Как скопировать сайт с помощью программы Cyotel WebCopy
Эту программу мы выбрали по трем причинам: она бесплатная, хороший функционал, почти как у платного софта, и приятный современный интерфейс (в сравнении с HTTrack, Teleport Pro, у которых возможности такие же).
Скачиваем установочный файл — переходим на официальный сайт, нажимаем кнопку “Download”.
Скачивание установочного файла приложения Cyotel WebCopy
Запускаем скачанный установщик, принимаем условия, нажимаем кнопку дальше.
Запуск скаченного установщика приложения Cyotel WebCopy
Отмечаем необходимые настройки, нажимаем кнопку “Дальше” (Next).
Выбор настроек при установке приложения Cyotel WebCopy
Выбираем опции установки (создавать ли ярлык на рабочем столе), нажимаем “далее” и “установить”.
Выбор опций установки приложения Cyotel WebCopy
Запускаем приложение. Основные режимы работы программы:
- тестирование сайта;
- просмотр отчета по содержимому сайта;
- быстрое сканирование;
- копирование сайта.
Страница тестирования сайта в приложении WebCopy
Быстрое сканирование позволяет увидеть структуру страниц и их взаимосвязь. Через отчет можно оценить размер сайта и насколько много дополнительного контента будет загружено.
Страница тестирования сайта в приложении WebCopy, на которой можно посмотреть структуру веб-портала
Чтобы скопировать сайт, достаточно в поле с адресом (website) вставить URL и нажать кнопку Копировать (Copy). Приложение автоматически создает структуру, редактирует ссылки. Все данные сохраняются в папку (Save folder), указанную под адресной строкой.
Процесс копирования в приложении WebCopy
Готово, получаем дубликат сайта с преобразованным php-кодом в html-разметку. После завершения копирования в окне с данными можно посмотреть результаты копирования, список файлов, карту сайта.
Список файлов в приложении WebCopy
Копирование сайта с помощью онлайн-сервиса Saveweb2zip
Процесс копирования с помощью сервиса упрощен, насколько возможно. Все четыре шага:
- переходим по ссылке saveweb2zip.com;
- вставляем в адресную строку url сайта или страницы;
- если нужно, настраиваем форму обратной связи;
- нажимаем кнопку “Скачать”.
Главная страница онлайн-сервиса Saveweb2zip
Сервис сканирует сайт, автоматически формирует его зеркало и запускает скачивание. На этом копирование закончено. Вы получаете готовый для запуска дубликат. Скачанный zip-архив можно редактировать в визуальном редакторе или распаковать и запустить на сервере.
Настройка форм обратной связи в сервисе Saveweb2zip
Скачивание изображений с сайта
И предустановленные программы, и онлайн-сервисы скачивают сайт целиком вместе с изображениями, скриптами, видео. Но картинки, как и видеоролики, копируются не всегда. Причина может быть как в установленных ограничениях по размеру файла, так и просто связана со сбоями в работе сервиса, ошибками в коде. Изображения могут физически находится на стороннем сайте (хостинге изображений или видеохостинге) и граббер проигнорирует их. В такой ситуации есть несколько решений:
- сканировать с помощью парсера, который умеет отдельно скачивать картинки и другой мультимедиа контент;
- заново сканировать сайт парсером, установив функцию “Скачать все страницы по ссылкам” (multiple mirror);
- копировать картинки вручную: открываем в браузере исходный сайт и скопированную на ПК копию, просматриваем страницы, где отсутствуют изображения, копируем картинки, кликнув по ним правой кнопкой мыши и выбираем команду “Сохранить изображение как…”, сохраняем в папку с контентом (img, pics, content или другое название) в раннее скачанном архиве;
Ручной способ копирования изображения или URL-ссылки
- через инструменты разработчика: нажимаем в браузере Ctrl+Shift+I, открываем вкладку Sources, находим папку с изображением, копируем в папку с архивом.
Скачивание сайт со всеми ссылками приложением WinHTTrack
Удобный функционал по скачиванию картинок реализован в Wget. Но приложение работает только через командную строку. Чтобы скачать изображения, запускаем программу через командную строку и вводим команду wget -A «*.jpg» -r https://www.yoursite.com
Как редактировать скопированный сайт
После скачивания есть несколько способов редактирования:
- открываем через блокнот или адаптированный блокнот для программистов (Notepad++, HAPedit или другой) и редактируем исходный код (вариант для настоящих гиков);
- через локальное приложение для создания и редактирования сайтов, например Adobe Dreamwiever или через WYSIWYG Web Builder. Впрочем, отредактировать скачанный лендинг можно даже через MS Word. Работает по принципу графического редактора (но не получится отредактировать формы захвата). Редактируем текст, стили, добавляем разделы как и при редактировании текстового документа;
- через веб-абминку CMS. Импортировать большой сайт на WordPress, Joomla или другую CMS не так легко (веб-разработчики новичкам рекомендуют работать с Modx Revo), но с лендингами, у которых минимум внешних ссылок, можно управиться, хотя это требует опыта.
Способы редактирования скопированного сайта
Для редактирования лучше использовать специализированный редактор, хотя можно использовать и MS Word или его бесплатные аналоги, например WPS Office.
Подведем итоги
Скопировать сайт несложно, если это ресурс на несколько страниц без сложных форм и скриптов. Лендинги, магазины на одну страницу, визитки можно скачать, отредактировать и запустить на собственном сервере за несколько минут. Но когда дело касается сложных проектов с сотнями, тысячами страниц, корректно скопировать их достаточно сложно. И усилия на доработку часто нужны такие же, как на создание с нуля. Впрочем, для маркетологов и арбитражников парсеры заметно упрощают жизнь и позволяют намного быстрее запускать успешные рекламные кампании.
*владелец Facebook и Instagram, компания Meta – запрещенная в РФ организация
Как экспортировать данные из Chrome
Вы можете экспортировать и скачивать личную информацию, сохраненную в вашем аккаунте Google с помощью функции синхронизации в Chrome. Это касается только тех данных, которые не были удалены. Сохраненные данные можно отправить в архив или использовать в других сервисах. Подробнее о том, как скачать свои данные…
Если вы пользуетесь рабочим или учебным аккаунтом Google, часть данных может быть недоступна для скачивания. Если вы суперадминистратор домена Google, то вам разрешено скачивать и переносить данные вашей организации. Подробнее о том, как экспортировать данные организации из Google Workspace…
Вот какие данные можно экспортировать из Chrome (в зависимости от ваших настроек):
OAuth 2.0 аутентификация через Google: как реализовать вход через Google на сайте
Senior PHP Developer/Team Lead в Tapmedia, Преподаватель Компьютерной школы Hillel.
- 1. Шаг #1. Регистрация нового проекта
- 2. Шаг #2. Регистрация приложения
- 3. Шаг #2.1. Настройка экрана согласия
- 4. Шаг #2.2. Настройка запрашиваемых прав
- 5. Шаг #2.3. Настройка тестовых пользователей
- 6. Шаг #2.4. Сводная информация
- 7. Шаг #3. Генерация ключей доступа
- 8. Шаг #4. Создание файла настроек
- 9. Шаг #5. Генерация ссылки
- 10. Шаг #6. Получение токена доступа
- 11. Шаг #7. Получение данных о пользователе
- 12. Верификация приложения
- 13. Заключение
Сегодня мне бы хотелось рассказать как своими руками реализовать вход через Google на вашем сайте. Данный процесс полезен как для владельца сайта, так и для его посетителей.
Для дальнейших шагов вам понадобится активный Google аккаунт
Все шаги будут характерны для локального сервера с тестовым доменом auth.lol
Шаг #1. Регистрация нового проекта
Для начала необходимо создать проект в Google Cloud Platform.
Шаг #2. Регистрация приложения
Далее следует пройти целый ряд шагов, чтобы зарегистрировать приложение, через которое пользователи будут аутентифицироваться на нашем сайте.
Шаг #2.1. Настройка экрана согласия
Отправляемся на страницу APIs & Services. OAuth consent screen для того, чтобы выбрать режим экрана согласия, на который будут перенаправлены пользователи при попытке входа через Google на вашем сайте.
Выбираем один из режимов работы данного экрана:
- Internal: аутентификация будет возможна только для пользователей вашей организации. Т.е. это некий корпоративный вариант, без верификации.
- External: аутентификация будет доступна для всех пользователей, включая тестовых. Для выкатки на продакшн потребуется верификация.
В нашем случае выбираем пункт External.
После нажатия на кнопку «Create» попадаем на первый шаг: настройку экрана согласия.
Вводим информацию о нашем приложении:
- Название приложения
- Электронную почту технической поддержки
- Загружаем логотип (по желанию)
Далее необходимо ввести подробную информацию о нашем домене. В нашем случае будем вводить тестовые данные:
- Ссылка на главную страницу приложения
- Ссылка на страницу условий конфиденциальности
- Ссылка на страницу с положениями и условиями использования
Далее следует очень важный параметр:
- Домены авторизации
Ну и в конце добавляем контактную информацию разработчика:
Нажимаем на кнопку «Save and continue» и переходим к следующему шагу.
Шаг #2.2. Настройка запрашиваемых прав
Для того, чтобы идентифицировать пользователя, который зайдёт на сайт через Google, мы должны настроить запрос соответствующих прав.
Нажимаем на кнопку «Add or remove scopes».
В открывшемся блоке запрашиваем права на доступ к адресу электронной почты пользователя, а также информацию о профиле:
- . /auth/userinfo.email
- . /auth/userinfo.profile
Прокручиваем блок вниз и нажимаем на кнопку «Update». На основной странице жмём «Save and continue».
Шаг #2.3. Настройка тестовых пользователей
Далее следует добавить одного или несколько тестовых пользователей. Для этого жмём на кнопку «Add users».
В открывшемся блоке добавляем тестовый email и нажимаем на кнопку «Add».
Далее жмём на «Save and continue» и переходим к финальному шагу настройки приложения.
Шаг #2.4. Сводная информация
На последней странице настройки приложения вы увидите всю сводную информацию, которую вводили на предыдущих шагах. Если какой-то блок требует редактирования, то жмём кнопку «Edit». В противном случае можем приступать к следующим шагам.
Шаг #3. Генерация ключей доступа
Далее необходимо отправиться на страницу APIs & Services. Credentials и сгенерировать данные, которые будут использоваться для аутентификации созданного приложения.
После загрузки страницы нажимаем на кнопку «Create credentials» и выбираем пункт «OAuth client ID», чтобы сгенерировать новый ключ доступа.
На открывшейся странице заполняем очередную форму:
- Тип приложения: Web application
- Название
В секции «Authorized redirect URIs» вводим адрес, на который пользователь будет направляться после экрана согласия. То есть, это должна быть какая-то страница на нашем сайте, которая будет отвечать за обработку данных пользователя.
Далее жмём на кнопку «Create» и получаем ключи доступа.
Сохраняем данную информацию, ведь она будет необходима в наших последующих скриптах.
Шаг #4. Создание файла настроек
Теперь было бы неплохо организовать один файл, в который мы поместим все необходимые параметры для реализации последующей аутентификации.
Создадим файл settings.php и добавим все необходимые URI, которые нам понадобятся для полного прохождения процедуры аутентификации и запросе данных о пользователе:
Далее создадим ещё несколько констант, куда поместим информацию, которая была сгенерирована во время регистрации приложения:
Шаг #5. Генерация ссылки
Теперь необходимо сгенерировать ссылку, кликнув на которую пользователь будет отправлен на экран согласия, на котором выберет, через какой Google аккаунт он хочет предоставить доступ.
Для начала подключаем файл настроек из шага #4:
Формируем массив параметров. Нам понадобится несколько параметров, которые мы получили в результате регистрации приложения:
Собираем URI, используя константу с фрагментом адреса и массив параметров:
Теперь в нужном месте страницы выведем данную ссылку:
На самой странице это будет выглядеть примерно так:
После клика пользователь будет перенаправлен на экран согласия, на котором выберет, через какой Google аккаунт он хочет аутентифицироваться.
Далее пользователь будет перенаправлен обратно на ваш сайт по адресу, указанному в секции «Authorized redirect URIs» шага #3.
Шаг #6. Получение токена доступа
На последнем шаге мы были перенаправлены обратно на наш сайт GET запросом со специальными параметрами. В них зашит код (code), который поможет достать токен доступа (Access Token). С помощью него мы сможем общаться с Google API и доставать нужную информацию о пользователе.
Чтобы получить токен доступа, необходимо отправить POST запрос с полученным кодом и дополнительными параметрами. Для того, чтобы отправлять HTTP запросы из скрипта было проще, подключим библиотеку Guzzle.
Далее подключим авто-загрузчик и файл настроек в файле callback.php:
Формируем массив параметров для подключения токена доступа. На этот раз нам понадобится секретный ключ (GOOGLE_CLIENT_SECRET) и GET-параметр code:
Инициализируем HTTP клиент и делаем запрос на получение токена:
Обратите внимание, что данный POST запрос должен отправляться как будто через форму. Именно поэтому мы передали параметры в специальном ключе form_params . Если вы будете делать аналогичное действие не через Guzzle, то убедитесь, что форма будет отправлена с заголовком application/x-www-form-urlencoded
Ответ от Google мы получим в формате JSON, поэтому конвертируем его в ассоциативный массив:
В результате получим следующие данные, среди которых есть и токен доступа ( access_token ):
Шаг #7. Получение данных о пользователе
Первым делом можем сохранить токен доступа в отдельную переменную:
Чтобы получить информацию о пользователе, необходимо отправить GET запрос со специальным заголовком Authorization , указав в качестве значения Bearer <token> . Пробел обязателен!
В качестве ответа получим JSON с информацией о пользователе. Конвертируем его в ассоциативный массив для дальнейших действий.
Верификация приложения
Как было указано в одном из шагов, если мы хотим, чтобы данной аутентификацией пользовались все желающие, то необходимо пройти процесс верификации.
Для прохождения верификации необходимо вместо тестовых доменов указать реальные, с использования протокола https. В этом случае на странице редактирования экрана согласия, в секции «Publishing status» вы сможете переключиться с режима Testing на In Production.
После замены тестовых доменов на реальные с использованием HTTPS, кнопка «Publish App» станет активной, и вы сможете отправить запрос на верификацию.
Заключение
В последнем шаге мы получили такую информацию о пользователе как имя, фамилия, адрес электронной почты и т.д. Этой информации должно хватить, чтобы проверить наличие пользователя в базе данных и внести его туда в случае отсутствия.
Senior PHP Developer/Team Lead в Tapmedia, Преподаватель Компьютерной школы Hillel.