Автоматизация SEO-задач: оптимизируем работу с помощью Tampermonkey и ChatGPT
SEO-задачи часто требуют сбора данных со страниц сайтов, а для сбора этих данных привлекаются «младшие научные сотрудники». И как это делает младший SEO-специалист? По моему опыту — ручками, о какой-то автоматизации речь обычно не идет.
Автоматизация в SEO экономит время и нервы. Время = деньги, нервы = здоровье. Поэтому далее я рассмотрю как сохранить и то, и другое и получить тот же результат.
Какие SEO-задачи оптимизирует Tampermonkey
Tampermonkey — это популярное расширение для браузера, которое позволяет запускать пользовательские скрипты (user scripts) на сайтах. Оно предоставляет пользователям возможность изменять или дополнять функциональность страниц, которые они посещают.
Я облегчаю себе рабочую рутину, используя Tampermonkey следующим образом:
добавляю фиксированные кнопки переключения языков на сервисах Google и других сайтах, где переключатели отсутствуют или неудобно размещены (один клик и интерфейс уже на английском);
копирую в буфер нужный набор данных со страницы в одно нажатие, например, результаты анализа из Pagespeed Insights или типы схем микроразметки со страницы валидации;
копирую в буфер в один клик пару анкор-ссылок на страницах фильтров в интернет-магазинах — удобно для сбора URL, например, для подбора страниц для перелинковки;
автоматически имитирую клик на нужном элементе при открытии страницы, например, в результатах поиска Google, чтобы сразу видеть общее количество результатов выдачи;
создаю свои кнопки для общения с ChatGPT, чтобы в одно нажатие кнопки вставлялся промпт, который сохранен за этой кнопкой.
В конце материала я приведу более длинный список способов использования скриптов Tampermonkey для SEO-специалистов, но до того разберу как именно настраивать самые полезные функции для браузера.
Как настроить Tampermonkey для SEO-задач
И самый главный вопрос: нужно ли быть для этого программистом?
Нет, не нужно.
Для большинства задач не нужны знания javascript, html, css и т. д. Если какой-то уровень знаний есть — это ускорит получение нужного результата. Без технических знаний надо немного дольше общаться с искусственным интеллектом.
Порядок настройки выглядит так:
Устанавливаете Tampermonkey.
Определяете что и где скрипт должен делать.
Открываете ChatGPT и формулируете для него задачу.
Получаете код и копируете его в Tampermonkey.
Установка Tampermonkey
Чтобы установить Tampermonkey, зайдите в официальный магазин расширений для Chrome и нажмите «Add to Chrome».
В окне согласия согласитесь добавить расширение в браузер.
После этого включите режим разработчика. Для этого нажмите три точки в правом верхнем углу и выберите «Extensions — Manage Extensions».
В новом окне измените положение переключателя в правом верхнем углу.
При необходимости перезагрузите браузер.
Написание скрипта с помощью ChatGPT
Лично мне неудобно, что Google скрыл данные о количестве страниц в поиске. Хочу видеть эту информацию сразу, поэтому для примера рассмотрю скрипт, который выведет эту цифру для меня.
Открываю поиск Google, пишу «site:netpeak.net». Или вот вам ссылка, чтобы не делать лишних движений.
По умолчанию надо нажать Tools, чтобы увидеть количество результатов выдачи.
Есть несколько вариантов реализации скрипта, чтобы сразу видеть результаты.
Информация появляется при нажатии на элемент на странице. Значит надо сделать скрипт, который нажимает на этот элемент вместо меня, но сначала скрипт должен идентифицировать нужный элемент.
Чтобы определить элемент, нажимаю Ctrl + Shift + C (для Google Chrome) и навожу мышку на кнопку Tools (1). Внизу страницы мне подсвечивается код, который отвечает за отображение кнопки.
Копирую подсвеченный фрагмент в буфер обмена.
Подготовка завершена, пора писать код. Открываю ChatGPT. Пишу ему промпт:
Привет! Нужна твоя помощь
[здесь вставляю скопированный код]
Мне нужен скрипт для tampemonkey для сайта https://www.google.com.ua/search?q=*. Скрипт должен дождаться полной загрузки страницы и после этого кликнуть на элемент, код которого я тебе дал.
Что мне нравится в чате, так это объяснения, что он сделал и как это должно работать. Поэтому, если вы не знаете принципов работы кода, понемногу разберетесь, просто читая его разъяснения.
В ответ получаю код и комментарии.
Как установить:
Установи Tampermonkey (если ещё не установлен) в свой браузер.
Нажми на иконку Tampermonkey и выбери «Создать новый скрипт».
Вставь код выше в редактор и сохрани его.
Открой страницу Google поиска (https://www.google.com.ua/search?q=*) — скрипт автоматически нажмёт на кнопку «Инструменты».
Примечания:
Если в будущем изменится структура страницы или ID элемента, скрипт может потребовать обновления.
Проверь, существует ли элемент с ID hdtb-tls на странице, прежде чем запускать скрипт.
// ==UserScript==
// @name Auto Click on Google Tools Button
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Автоматический клик на элемент «Tools» на странице поиска Google
// @author Ты
// @match https://www.google.com.ua/search?q=*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Функция для проверки наличия элемента и выполнения клика
function clickOnElement() {
const targetElement = document.querySelector('#hdtb-tls');
if (targetElement) {
targetElement.click();
console.log('Элемент «Tools» нажат!');
} else {
console.log('Элемент «Tools» не найден.');
}
}
// Дождаться загрузки страницы
window.addEventListener('load', () => {
console.log('Страница загружена, ищем элемент...');
clickOnElement();
});
})();
Добавление скрипта в Tampermonkey
Скрипт есть, время его использовать. Открываю страницу с поиском гугла и кликаю на иконку в правой верхней части. Иконка может быть на панели.
Или под иконкой всех расширений.
По клику на иконку расширения, появится меню. Выбираю «Создать новый скрипт».
Откроется новая вкладка.
Строки с первой по десятую — данные, которые позволяют скрипту правильно отрабатывать и делать это там, где нужно. Разберу каждую из них:
// @name Auto Click on Google Tools Button
Название, которое будет отображаться на странице списка скриптов. Его можете изменить, чтобы легче было искать скрипт.
// @namespace http://Tampermonkey.net/
Идентификатор, обозначающий кому принадлежит скрипт. Он не влияет на выполнение кода, но полезен для структурирования и унификации.
// @version 1.0
Версия скрипта. Не влияет на его работу, нужна для того, чтобы отслеживать изменения. Когда скрипт пишет ChatGPT, при каждом следующем запросе с просьбой что-то изменить, он будет менять и версию скрипта — на 1.1, 1.2 и т. д.
// @description Автоматический клик на элемент «Tools» на странице поиска Google
Описание скрипта. Дополняет информацию из name, может быть пустой.
// @author Ты
Кто автор скрипта. ChatGPT говорит, что это я, хотя это и не правда. Ни на что не влияет.
// @match https://www.google.com.ua/search?q=*
На каких страницах будет работать скрипт. В примере — на всех страницах, начинающихся на https://www.google.com.ua/search?q=. На это указывает звездочка в конце URL. При желании, определить страницы можно с помощью регулярного выражения в самом скрипте.
// @grant none
Указывает разрешения, необходимые скрипту. В моем примере указано none — означает, что скрипту не нужен доступ к каким-либо специальным API или функциям Tampermonkey.
Еще раз подчеркну, что скрипт написанный чатом почти никогда не нуждается в изменениях.
Вставка кода
Итак, на прошлом этапе я нажал «Создать новый скрипт» и теперь в открытой вкладке могу все выделить и удалить.
Вставляю в это поле скрипт, который написал ChatGPT.
Далее надо сохранить изменения. Нажимаю File — Save, или Ctrl+S на клавиатуре.
После этого откроется окно со списком сохраненных скриптов.
Проверка работы скрипта
Открываю вкладку, где проводил поиск и обновляю ее. При желании, можно тестировать на других страницах.
После обновления страницы сразу нажимается кнопка tools и появляется панель с данными.
Как улучшить скрипт
Для SEO-задач только количества страниц в выдаче может быть недостаточно, обычно их надо еще скопировать, вставить в табличку, удалить ненужные запятые. Или же можно попросить ChatGPT дополнить скрипт для автоматизации этих действий.
Для этого нажимаю Ctrl+Shift+C и навожу курсор на количество результатов (1), затем — копирую подсвеченный код в консоли (2).
Со скопированным кодом обращаюсь в тот же чат, где ранее генерировал код, и пишу ему промпт:
Хороший скрипт, спасибо! Но надо к нему добавить функцию: нужно при клике на элемент ниже:
<div id="result-stats">About 6,060 results<nobr> (0.12 seconds)</nobr></div> извлекать из него количество результатов и записывать в буфер обмена. Надо только число — без пробелов, букв, знаков препинания.
Получил ответ.
Вот обновлённый скрипт, который автоматически нажимает на кнопку «Инструменты», а также добавляет функционал для извлечения количества результатов из элемента #result-stats и записи этого числа в буфер обмена при клике.
// ==UserScript==
// @имя Автоклик на кнопку Google Tools и копирование результатов подсчета
// @namespace http://tampermonkey.net/
// @version 1.1
// @description Автоматический клик на элемент «Tools» и копирование количества результатов в буфер обмена
// @author Ты
// @match https://www.google.com.ua/search?q=*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Функция для проверки наличия элемента и выполнения клика
function clickOnTools() {
const targetElement = document.querySelector('#hdtb-tls');
if (targetElement) {
targetElement.click();
console.log('Элемент «Tools» нажат!');
} else {
console.log('Элемент «Tools» не найден.');
}
}
// Функция для копирования текста в буфер обмена
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then((() => {
console.log(`Копировано в буфер обмена: ${text}`)
}).catch(err => {
console.error('Ошибка при копировании в буфер обмена:', err);
});
}
// Функция для получения количества результатов и записи в буфер обмена
function extractAndCopyResultsCount() {
const resultStatsElement = document.querySelector('#result-stats');
if (resultStatsElement) {
const textContent = resultStatsElement.textContent;
const match = textContent.match(/\d[\d,]*/); // Находим первое число с возможными запятыми
if (match) {
const resultCount = match[0].replace(/[^\d]/g, ''); // Удаляем все символы, кроме цифр
copyToClipboard(resultCount);
} else {
console.log('Количество результатов не найдено.');
}
} else {
console.log('Элемент «result-stats» не найден.');
}
}
// Добавление обработчика клика на элемент #result-stats
function addClickHandlerToResultStats() {
const resultStatsElement = document.querySelector('#result-stats');
if (resultStatsElement) {
resultStatsElement.addEventListener('click', extractAndCopyResultsCount);
console.log('Обработчик клика добавлен к элементу «result-stats».');
} else {
console.log('Элемент «result-stats» не найден для добавления обработчика.');
}
}
// Дождаться загрузки страницы
window.addEventListener('load', () => {
console.log('Страница загружена.');
clickOnTools();
addClickHandlerToResultStats();
});
})();
Как обновить код в Tampermonkey
Есть два пути обновления кода.
На любой вкладке кликните на иконку Tampermonkey (1), выберите Dashboard (2) и далее в перечне скриптов, кликните на тот, что нужно изменить (3).
Далее откроется уже знакомый интерфейс, где нужно снова выделить весь код и вместо него вставить новый (4).
Второй вариант — через страницу работы скрипта. Отсюда путь к редактору кода короче. Иконка Tampermonkey размещена в правом верхнем углу.
Красным подсвечивается количество скриптов, работающих на этой странице. Кликните на иконку (1) и выбирайте дополнительное меню возле нужного скрипта из списка (2).
В дополнительном меню кликните Edit (3).
Откроется редактор кода. После внесения изменений не забудьте сохранить обновленный скрипт.
Проверка работы обновленного кода
Откройте вкладку поиска, обновите ее. Если количество результатов поиска присутствует на странице, первая часть кода уже сработала. Теперь надо скопировать данные. Кликните на количество результатов поиска.
А как понять, что информация скопировалась?
Действие отобразится в консоли.
Можете просто нажать Ctrl+V, кликнув предварительно на любое текстовое поле.
Если результаты совпадают, все работает.
Другие примеры автоматизации SEO-задач
Далее буду менее подробно разбирать, что делаю, но покажу несколько примеров, как еще Tampermonkey может облегчить вам работу.
Подсчет количества выделенных символов
Раньше я копировал текст в Google Docs или в Google Translate и нажимал Ctrl+Shift+C. Но это лишние хлопоты. Откройте ChatGPT, введите промпт:
Привет! Мне нужен скрипт для tampermonkey, который будет работать на всех сайтах.
Я хочу, чтобы при выделении текста на странице функция считала количество выделенных символов.
Нужно посчитать 2 показателя: 1) Количество символов без пробелов 2) Количество символов с пробелами.
Результат нужно выводить в нижней части правой стороны страницы. Элемент должен быть поверх всех других.
Ответ будет следующим:
// ==UserScript==
// @имя Счетчик выделения текста
// @namespace http://tampermonkey.net/
// @версия 1.0
// @description Подсчитывает выделенные текстовые символы с пробелами и без пробелов.
// @author Ваше имя
// @match *://*/*
// @grant none
// ==/UserScript==
(function () {
'use strict'
// Создание элемента для отображения результата
const resultBox = document.createElement('div');
resultBox.id = 'selection-counter-box';
Object.assign(resultBox.style, {
position: 'fixed'
bottom: '10px'
right: '10px'
backgroundColor: 'rgba(0, 0, 0, 0, 0.8)'
, color: 'white',
padding: '10px',
borderRadius: '5px',
zIndex: '9999',
fontSize: '14px',
fontFamily: 'Arial, sans-serif',
display: 'none',
maxWidth: '200px',
wordWrap: 'break-word',
textAlign: 'center'
});
document.body.appendChild(resultBox);
// Функция для обработки выделения текста
function handleSelection() {
const selection = window.getSelection();
const text = selection.toString();
if (text) {
const lengthWithSpaces = text.length;
const lengthWithoutSpaces = text.replace(/\s+/g, '').length;
// Обновление текста в результатах
resultBox.innerHTML =`
<strong>Выбранный текст:</strong><br>
<strong>С пробелами:</strong> ${lengthWithSpaces}<br>
<strong>Без пробелов:</strong> ${lengthWithoutSpaces}
`;
// Отображение блока результатов
resultBox.style.display = 'block'
} else {
// Скрыть блок, если ничего не выделено
resultBox.style.display = 'none'
}
}
// Слушатель для изменения выделения текста для изменения выделения
document.addEventListener('selectionchange', handleSelection)
})();
Создайте новый скрипт и обновите страницу. Выделите какой-то текст (1), внизу справа должна появиться форма, показывающая количество выделенных символов (2).
Если подсчет корректен — все работает правильно. Но не лишним будет потестировать на другом сайте, например, на Netpeak Joutnal.
О! На этом сайте элемент недостаточно высоко и его перекрывают другие виджеты. Чтобы исправить это, можно либо попросить чат поставить элемент еще выше (z-index сделать не 9999, а 99999999), либо добавить блоку функцию, которая будет перемещать его вверх, если навести на него курсор. Давайте попробую второй вариант. Возвращаюсь в ChatGPT.
Ну! Можешь, когда хочешь! Скрипт – бомба!
Но нужно внести изменения.
Нужно добавить к блоку, который появляется при выделении текста, ещё один небольшой блок со стрелочками «вверх и вниз».
При наведении на этот новый блок наш общий элемент должен перемещаться наверх страницы.
Если навести на этот новый блок, когда наш элемент находится вверху – он должен снова отображаться внизу.
Получил код.
// ==UserScript==
// @имя Счетчик выделения текста с опцией перемещения
// @namespace http://tampermonkey.net/
// @версия 1.1
// @description Подсчитывает выделенные текстовые символы и позволяет перемещать блок счетчика вверх или вниз по странице.
// @author Ваше имя
// @match *://*/*
// @grant none
// ==/UserScript==
(function () {
'use strict'
// Создание главного элемента для результатов
const resultBox = document.createElement('div');
resultBox.id = 'selection-counter-box';
Object.assign(resultBox.style, {
position: 'fixed'
bottom: '10px'
right: '10px'
backgroundColor: 'rgba(0, 0, 0, 0, 0.8)'
, color: 'white',
padding: '10px',
borderRadius: '5px',
zIndex: '9999',
fontSize: '14px',
fontFamily: 'Arial, sans-serif',
display: 'none',
maxWidth: '200px',
wordWrap: 'break-word',
textAlign: 'center'
});
// Создание блока для перемещения
const moveBox = document.createElement('div');
moveBox.id = 'move-box';
moveBox.innerHTML = '⇅';
Object.assign(moveBox.style, {
position: 'absolute'
top: '-25px'
right: '10px'
backgroundColor: 'rgba(255, 255, 255, 255, 0.8)'
, color: 'black',
padding: '5px',
borderRadius: '5px',
cursor: 'pointer',
fontSize: '12px',
fontWeight: 'bold'
});
resultBox.appendChild(moveBox);
document.body.appendChild(resultBox);
let isAtTop = false; // Состояние положения блока (снизу или сверху)
// Обработка перемещения блока
moveBox.addEventListener('mouseenter', () => {
if (isAtTop) {
resultBox.style.bottom = '10px';
resultBox.style.top = '';
isAtTop = false;
} else {
resultBox.style.top = '10px'
resultBox.style.bottom = '';
isAtTop = true;
}
});
// Функция для обработки выделения текста
function handleSelection() {
const selection = window.getSelection();
const text = selection.toString();
if (text) {
const lengthWithSpaces = text.length;
const lengthWithoutSpaces = text.replace(/\s+/g, '').length;
// Обновление текста в результатах
resultBox.innerHTML =`
<strong>Выбранный текст:</strong><br>
<strong>С пробелами:</strong> ${lengthWithSpaces}<br>
<strong>Без пробелов:</strong> ${lengthWithoutSpaces}
`;
resultBox.appendChild(moveBox); // Возвращаем кнопку «⇅» после обновления HTML
// Отображение блока результатов
resultBox.style.display = 'block'
} else {
// Скрыть блок, если ничего не выделено
resultBox.style.display = 'none'
}
}
// Слушатель для изменения выделения текста document.addEventListener('selectionchange', handleSelection)
})();
Обновил скрипт в Tampermonkey, обновил страницу. Работает, но мне не нравится, что стрелки ↑↓ малозаметны.
Если навести на них курсор, то когда блок переместится вверх, стрелок вообще не будет видно.
Это не удобно, поэтому я еще поправлю код.
Спасибо, друг!
Работает хорошо, а выглядит не очень.
Давай этот блок со стрелочками разместим слева от нашего основного блока с количеством символов.
Хочу ещё одну функцию. Хочу, чтобы при клике на цифру она копировалась в буфер обмена. То есть если я кликаю на число «без пробелов», то оно записывается в буфер обмена. Если я нажимаю на число с пробелами – оно записывается в буфер обмена.
Остальное без изменений.
После тестирования видно, что «перемещатель» блока теперь слева от наших данных, количество символов считается, но при нажатии эта информация в буфер не попадает.
Друг! Что ж это творится?
При нажатии на число оно не копируется в буфер обмена.
Нужно исправить.Сделай блок, который перемещает наш главный элемент с данными при наведении, в том же стиле.
Теперь тест. Выделяю текст (1), кликаю на число в созданном блоке (2) и получаю число в буфере обмена (3). Теперь могу вставить его где нужно. Все работает!
Примечание: мне не нужен этот большой черный блок (alert), который появляется и сообщает о количестве скопированных символов, потому что придется его каждый раз закрывать. Можно попросить чат убрать это оповещение, но быстрее найти строку в коде, где пишется alert('здесь какой-то текст'). В примере это следующая строка:
alert(`Copied to clipboard: ${text}`);
Надо закомментировать эту строку, поставив в начале два слеша:
// alert(`Copied to clipboard: ${text}`);
И все, сообщение не будет выскакивать.
Кнопки для копирования изображений
Промпт:
Привет! Без тебя – я как без рук!
Мне нужен скрипт для tampermonkey. Он должен работать на ссылках с изображениями, расширения которых jpg, webp, avif, png, svg, gif и т. д.
Скрипт должен на таких страницах:
Добавлять 2 кнопки и размещать их рядом друг с другом над изображением (по центру).
Текст 1 кнопки «Копировать изображение». Текст второй кнопки «Копировать ссылку».
При нажатии на первую кнопку изображение должно копироваться в буфер обмена.
При нажатии на вторую кнопку в буфер обмена должна копироваться ссылка на это изображение.
Код из ответа проверяю на картинке.
Открываю картинку в браузере, есть кнопки, но левая не работает.
Смотрю, что за ошибка через консоли. Нажимаю Ctrl+Shift+J.
Чтобы понять, что это значит, копирую строку и отправляю в ChatGPT.
Получаю объяснение и новый вариант кода.
Это сообщение свидетельствует о том, что ваш браузер не поддерживает прямое копирование изображений в буфер обмена для некоторых типов файлов. Решим это, добавив альтернативный подход, который использует canvas для изображений. Вот обновлённый скрипт.
Тестирую второй код. Клик на первую кнопку копирует изображение и его можно вставить, например, в фотошоп или в Google Docs. При клике на вторую кнопку копирует ссылку на это изображение.
Лайфхак 1
Если любите работать с клавиатурой, то рекомендую переходить от кнопки к кнопке, нажимая Tab:
один раз Tab + Enter для кнопки копирования изображения, а когда появится сообщение — еще раз Enter и оно закроется;
два раза Tab + Enter для второй кнопки.
Лайфхак 2
Можно доработать скрипт, чтобы после закрытия сообщения об успешном копировании вкладка тоже закрывалась. Если для вашего процесса это удобно, вот код.
Заметьте, у скрипта есть ограничения.
Скрипт для уменьшения количества кликов
Для использования функций в некоторых сервисах приходится кликать на выпадающие списки. Понятно, что нельзя налепить кнопки на все случаи жизни в интерфейсе — приходится прятать их.
К примеру, Serpstat. Мне для работы надо перебирать и отбирать ключевые запросы, а также скопировать их в буфер.
Для этого надо нажать «Operations» и «Copy keywords to clipboard».
Во-первых, это два действия. Во-вторых... Лично мой мозг все равно работает так, что приходится каждый раз читать, где же та опция, на которую надо тыкать в списке. Может когда-то он и запомнит, что надо выбирать последний пункт в списке.
Сделаю кнопку, чтобы уменьшить количество кликов и размышлений. На этот раз отправлю чату запрос.
Привет, дружище!
Мне нужен скрипт для tampermonkey для сайта
https://serpstat.com/keywords/search/*
Скрипт должен добавлять на страницу кнопку слева от этого элемента, но после того, как страница полностью загрузится:
#content > div.react_product_heading.product_heading > div > div.df > div.react_dropdown_handler.dropdown_handler.links_handler
При нажатии на созданную нами кнопку нужно нажимать на этот элемент:
#content > div.react_product_heading.product_heading > div > div.df > div.react_dropdown_handler.dropdown_handler.links_handler > div.dropdown_trigger > div > div > button > div
После этого нужно подождать 100 мс и нажать на этот элемент:
#react_portal-container > div > div > div > div > div:nth-child(6) > div > span
#content > div.react_product_heading.product_heading > div > div.df > div.react_dropdown_handler.dropdown_handler.links_handler — это CSS селектор, набор id, классов и псевдоклассов, которые дают применять стили к конкретным элементам в html-коде.
Чтобы найти селектор, надо выделить нужный элемент, нажать его в коде правой кнопкой мыши (1), выбрать Copy (2) и Copy selector (3):
Итак, чат написал такой код.
После установки скрипта, добавляется кнопка, которая за миллисекунды делает сразу два клика.
Так же можно сделать, чтобы она кликала на 3-4-5 кнопок на странице, или вставляла текст, или его копировала. В общем — это путь для объединения нескольких действий в одно нажатие.
ВАЖНО: многие сайты не имеют постоянных классов в верстке. То есть сейчас классы у элементов указаны одни, а после перезагрузки страницы будут другие. В таком случае скрипт очень вероятно перестанет работать. Чтобы этого избежать, ищите селекторы, которые будут оставаться неизменными, или используйте XPath, специальный синтаксис, который точно указывает, где находится определенный элемент в HTML-структуре. О нем подробнее расскажу ниже.
Такая же проблема может возникнуть, если на сайте просто изменится структура. Бывает. Придется переписать скрипт/изменить селекторы.
Если вам надо переписать скрипт за какое-то время, скопируйте его в новый в чат и скажите, что в этот код надо внести определенные изменения.
Копирование данных через XPath
Отправляю ChatGPT запрос.
Привет! Мне нужен скрипт для tampermonkey, чтобы он работал на всех сайтах.
Скрипт должен:
Создавать кнопку и размещать её в правом нижнем углу страницы
При нажатии на кнопку в буфер обмена должен получаться XPath
Нужно собрать данные со страницы по этому XPath и записать их в буфер обмена так, чтобы потом при вставке в таблицы google данные вставлялись в столбик.
Теперь пример:
Открываю любимый https://netpeak.net/
Нажимаю Ctrl+Shift+C, навожу курсор и кликаю на нужный элемент. Для примера, хочу собрать все ссылки в блоке «Most shared».
- Щелкаю правой кнопкой и выбираю «Copy XPath».
В XPath надо внести изменения, а для этого — вставить в текстовое поле. Сделаю это в поле адреса сайта.
- Надо убрать [1] возле div и добавить в конце «/@href».
Рекомендую разобраться с синтаксисом XPath. Пригодится в случае чего.
Выделяю и копирую в буфер новый улучшенный XPath. Нажимаю Ctrl+A, Ctrl+C.
Далее нажимаю на созданную кнопку. Откроется окно.
Открываю документ и вставляю полученные данные. Готово!
Что стоит указывать в промптах к ChatGPT
Несколько подсказок, которые помогут вам сэкономить время при подготовке скриптов.
Элементы iframe. Если нужно делать какие-то действия с элементами в iframe — скажите об этом чату. Просто сообщить ему селектор последнего элемента не будет достаточно, поскольку взаимодействие с элементами в iframe имеет особенности. Сначала дайте путь к iframe, а потом к элементу в iframe, а ИИ уже разберется, как это расписать.
SPA-сайты. Если контент, с которым должен работать скрипт, отсутствует в коде полученной браузером страницы или нужные элементы добавляются в код страницы динамически с помощью JS, об этом тоже надо сообщить ChatGPT. Есть разные способы отследить появление/изменение элементов и он сможет предложить решение.
Ошибка скрипта. Иногда причину того, что скрипт не работает (или не работают какие-то его функции) можно подсмотреть на вкладке console в инструментах разработчика (Ctrl + Shift + J). Оттуда копируйте текст ошибки, закидывайте в ChatGPT и он ее исправит.
Не просите чат сразу сделать много задач: изменить стили, поменять логику, переместить элементы. Почти гарантированно он что-то забудет сделать или сделает не то, что нужно. Лучше вносить правки постепенно.
Бывает, что после запроса на изменения, чат присылает не весь код, а только измененную часть. Если не хотите разбираться куда этот кусок вставлять, попросите чат написать вам «полную версию скрипта». Он перепишет. Если код длинноват, то придется нажать на кнопку «Continue Generating» или подобную.
Наоборот, если вы уверены, что изменения надо внести условно только в трех строках, попросите чат написать, где именно. А лучше, пусть напишет, какой кусок кода требует замены. Это будет быстрее, чем ждать, пока он ради трех строк перепечатывает 150.
Чат может на ключевые моменты в коде добавлять комментарии, а также выводить в консоль сообщения о том, как выполняется код. То есть, если код не сработал полностью, консоль покажет, где именно он обрывается.
Подумайте, стоит ли тратить время на написание скрипта. Может именно для этой задачи его написание займет больше времени, чем выполнение вручную.
С чем еще могут помочь Tampermonkey и ChatGPT
В начале этого лонгрида я обещал привести больший список использования Tampermonkey для SEO-специалистов. Выполняю обещание. Вот как еще я использую Tampermonkey:
Меняю формат данных на страницах, например, заменяю 274.7K на 274700.
Добавляю элементы на сайт, например, добавил панель с нужными emoji, чтобы при нажатии на одно из них оно вставлялось в форму, где стоит курсор.
Одним кликом делаю несколько — копирую с YouTube iframe для вставки на сайте.
В одно нажатие собираю перечень товаров на странице каталога.
Автоматически считаю символы на странице или в выделенном фрагменте с возможностью копирования в буфер обмена при клике по числу.
Скрываю/показываю изображения на странице в один клик или автоматически по какому-то условию (настройки можно запоминать в local storage).
Так же подсвечиваю ссылки и их атрибуты.
В один клик копирую в буфер структуру статьи (h1-h2-h...).
Автоматически заполняю/очищаю формы на страницах.
Одним нажатием на кнопку копирую текст, а вторым вставляю его в несколько разных форм на странице, при этом автоматически разбивая текст на нужные части.
Комбинирую вышеперечисленные варианты.
Очень надеюсь, что вы напишете мне, что я использую только 5% мощности мозга скриптов и накидаете мне еще вариантов, как можно их использовать. Сделайте это в LinkedIn.
Вместо выводов
SEO-задачи часто выполняются вручную, но автоматизация через Tampermonkey помогает значительно сократить время и усилия.
Tampermonkey позволяет создавать собственные функции на страницах: от копирования элементов до автоматических кликов, что полезно для ежедневных задач SEO-специалиста.
Настройка Tampermonkey не требует знания программирования: достаточно четко сформулировать задачу для ChatGPT и вставить в Tampermonkey сгенерированный код.
При необходимости скрипт легко усовершенствовать: изменить вид элементов, размещение или убрать всплывающие сообщения.
Свежее
Как оптимизация Google Ads и Meta Ads принесла Mr.Lens рост дохода на 20% за месяц
Подробно о переходе к performance-форматам и точечной работе с аудиториями
Что эффективнее для анализа рекламы в AppsFlyer: сравнение отчетов Activity и Events
Почему важно понимать разницу между Activity и Events, каковы их основные возможности и отличия
CRO в медицине: +25% конверсии для «ОН Клиник» благодаря правильному сопровождению пациента на сайте
О сценариях, которые работают даже тогда, когда пользователь хочет уйти