- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Был у меня клиент, который практически каждые 3 дня заказывали парсинг Wordpress сайтов.
Ничего нестандартного - обычный блог, комментарии.
Я подошел к делу очень абстрактно и создал плагин, который может импортировать практически любой Wordpress сайт.
Единственное требование к донору - включенный REST API (встроен и включен по умолчанию в Wordpress начиная с версии 4.7).
Плагин может парсить данные в уже наполненный рабочий Wordpress сайт, а также из множества доноров
(никаких прямых записей в базу данных + созданию уникальный хешей на основе ID REST сущности на стороне донора + хост донора в качестве префикса)
Основные особенности плагина:
Вытягивает содержимое Wordpress сайтов через встроенный в Wordpress REST API, соответственно, экономит ресурсы (время, трафик, ОЗУ) по сравнению с парсингом HTML страниц с использованием регулярных выражений или simplehtmldom.
Среднее время копирования блога (500 публикаций, 2000 комментариев, 2000 медиафайлов) - 15 минут
Плагин не требует установки дополнительных библиотек на сервер, типа Curl, потому, что работает исключительно за счет встроенного в ядро функционала Wordpress, например, WP HTTP для сетевых запросов, WP CRON для планировщика, WP Transient Cache для кеширования.
Плагин поддерживает обновление уже импортированных данных по расписанию (WP CRON - не требует настройки на сервере), а также опрос новых комментариев, обновлений.
В отличии от стандартных решений, парсер, который работает по REST API узнает об обновлениях без повторной проверки и сравнения документов (просто передав HTTP GET параметр after=ДАТА ПОСЛЕДНЕГО ЗАПУСКА ПАРСЕРА в REST запросе).
Соответственно, если по сравнению с предыдущим запуском есть обновления, в ответ парсер получает эти обновления, если нет - ошибку 400.
Парсер импортирует ВСЕ СТАНДАРТНЫЕ СУЩНОСТИ WORDPRESS, а именно
публикации,
страницы,
комментарии,
медиафайлы (скачивает на сервер),
категории,
метки,
мета данные медиафайлов,
аватары и мета данные комментаторов
Плагин заменяет URL донора на URL акцептора в содержимом публикаций, страниц и комментариев используя simplehtmldom,
угадывает шорткоды WPBakery (большинство шорткодов Wordpress отдает в оригинале по REST API, вам нужно только загуглить и установить соответствующие плагины для их обработки на стороне акцептора).
Плагин импортирует данные используя стандартные функции Wordpress, такие как - wp_insert_post, add_post_meta, ... соответственно, плагин совместим с другими плагинами, например, Yoast SEO.
Плагин работает из под чистой инсталляции Wordpress (акцептор), плавно заполняя ваш сайт, поддерживает планирование расписаний в WP CRON, умные интервалы (для обхода автоматических блокировок), а также, приятный бонус - если ваш сайт работает из под Cloudflare, вы практически неуязвимы блокировке со стороны донора (благодаря динамическому адресу сервера).
Вы можете сами протестировать плагин бесплатно и неограниченно (плагин с поддержкой Woocommerce получает каждый спонсор)
http://167.71.82.159/wp-rest-api-import.zip
Разархивируйте содержимое архива в папку wp-content/plugins чистой инсталляции Wordpress, откройте wp-rest-api-import.php и укажите константы WP_REST_API_IMPORT_SCHEME (http либо https) и WP_REST_API_IMPORT_HOST (домен Wordpress сайта с открытым REST API).
Активируйте плагин в консоли Wordpress.
Инструменты - Импорт Wordpress REST API - Запустить задачу немедленно и наблюдайте за плавным наполнением сайта
Наполненный сайт будет работать с любой Wordpress темой, так, как использует исключительно стандартный функционал Wordpress
Соответственно, вы можете выводить содержимое донора (или доноров) на оптимизированном более современном фронтэнде (например, установив оптимизированную премиум-тему) обойдя по качеству финального сайта даже донора.
Данный плагин в виде Wordpress плагина не будет обновляться, поэтому, его будущее сейчас зависит от спроса.
На данный момент я работаю над сервисом, который упростит процесс копирования Wordpress сайта до того, что вам будет достаточно указать адрес донора, адрес акцептора, логин/пароль Wordpress пользователя на стороне акцептора с правами администратора и сервис сам будет добавлять содержимое используя тот же REST API.
Каждый параметр, который импортируется можно пропустить через неограниченное количество встроенных в сервис функций, в том числе, автоматический перевод/синонимизация на phpmorphy.
Какие возможности процессинга хотели бы увидеть вы в первую очередь?
Лицензирование скорее всего за количество REST запросов к донору (больше содержимого - дороже парсинг).
На данный момент, я ищу спонсоров, которые получают доступ к ранним версиям сервиса, а также бесплатные годовые+ лицензии.
Вступить в ряды ожидающих, получить первые неограниченные годовые+ лицензии
Яндекс кошелек 410011404826845 (в комментариях указывайте REST + электронная почта)
Для обратной связи используйте данную тему
media.galer@gmail.com
Telegram @arturkohut
Также, публикую участки исходного кода на случай заинтересованных в написании более специфичного Wordpress плагина/функционала
(контакты выше)
Инкрементальная пауза с привязкой к вызывающей функции/ID итерации с использованием последнего успешного интервала для обхода/предотвращения блокировок со стороны донора
Импорт найденных в содержимом публикации/страницы медиафайлов на сервер акцептора, а также их метаданных (title, alt) в Wordpress медиатеку акцептора (возвращает ID добавленного медиафайла)
Принудительная остановка рабочего процесса парсера после завершения текущей транзакции
а как их искать ?
а как их искать ?
Включен по умолчанию начиная с Wordpress 4.7.
Если владелец сайта принудительно не закрыл REST API с помощью плагина, то работает практически на любом Wordpress сайте.
На локалке будет работать ?
А есть тестовый сайт какой нибудь где точно включен ? (можно в личку)
На локалке будет работать ?
А есть тестовый сайт какой нибудь где точно включен ? (можно в личку)
Должно работать.
Вот, пример REST запроса.
https://openmind.com.ua/wp-json/wp/v2/posts
Сайт соответственно openmind.com.ua
Добавляйте /wp-json/wp/v2/posts к домену сайта на Wordpress, чтобы проверить доступность REST API
"Данный плагин в виде Wordpress плагина не будет обновляться, поэтому, его будущее сейчас зависит от спроса."
тут сразу нюанс как установил у себя - сайт прописать только в конфиг плагина можно - было б прикльно если из админки указать доноров и запустить.
Плюс на уже готовом сайте почему-то не запустилось (ничего не спарсило). Сейчас пробую на чистый wp сунуть - сразу после установки.
iskrakovrov, данный плагин это личная наработка и просто предоставлен, как демонстрация работы парсинга по WP REST API.
Я с радостью поработал бы над улучшением данного плагина и выпуском коммерческого продукта.
Но для этого нужна обратная связь от пользователей и хотя бы минимальное спонсирование покрывающее работы по ставке от 5$ в час.
В плагин интегрировано журналирование.
Для просмотра логов плагина нужно установить в значение true константы WP_DEBUG, WP_DEBUG_LOG и в значение false константу WP_DEBUG_DISPLAY.
Для корректной работы плагина также нужно дать возможность работать php процессам неограниченно по времени.
Плагин пробует снять ограничение в 30 сек с помощью функции set_time_limit(0), но для конфигурации сервера, где PHP работает, как fast_cgi, также нужно вручную установить fastcgi_read_timeout в 0
Проект отменен.
Обратная связь по проекту не предусмотрена.
Отправленные деньги по реквизитам из первого сообщения будут возвращены по тем же реквизитам с вычетом комиссии платежной системы за перевод.