Как создать гибкие инструменты SEO с помощью электронных таблиц Google

  1. Agile vs Scaleable
  2. Начнем с полного новичка
  3. Урок 1 - Простая очистка веб-страниц
  4. Пример пошагового руководства по простой очистке веб-страниц
  5. Урок 2 - Более продвинутая очистка веб-страниц
  6. Урок 3 - Сценарии Google Документов - Секретный соус
  7. Урок 4 - Триггеры Google Scripts
  8. Пример прохождения триггера на основе времени
  9. Урок 5 - собрать все вместе
  10. Продолжая

За последние несколько лет инновации в сети сделали невероятно простым для обычных людей, таких как мы с вами, возможность войти в мир программирования. Например, прямо в конце 2010 года я начал баловаться Google Appengine и отправил полнофункциональный интерактивный сайт за 4 недели. (Читать как я построил 7 книг за 4 недели )

Конечно, достижения в области технологии также облегчили для профессионалов создание удивительных приложений. Просто посмотрите на SEOmoz's Открыть Site Explorer который опирается на Amazon Web Services ,

Поэтому, как SEO, у нас есть огромный арсенал инструментов, которые мы можем использовать для различных функций. Однако многие из этих инструментов, сервисов и платформ либо требуют изучения большого количества кода, либо занимают много времени, чтобы создать что-то сделанное на заказ. Итак, в этом посте я расскажу об использовании таблиц Google для создания небольших гибких инструментов, которые могут быть созданы в соответствии с вашими потребностями.

Agile vs Scaleable

Прежде чем углубиться в технические детали, коротко расскажу о том, для чего я использую Google Docs. В моем наборе инструментов SEO-ниндзя Google Docs используются для быстрых, гибких инструментов . Это означает, что если есть какая-то конкретная проблема, которую мне нужно преодолеть, или какая-то странная вещь, которую я тестирую, я всегда сначала обращаюсь к Документам Google. Это потому, что я могу строить вещи быстро. Они не всегда надежны, но если я только создаю инструмент для решения уникальной проблемы (в отличие от проблемы, с которой я сталкиваюсь все время), то скорость имеет значение. Я не хочу тратить много времени на создание инструмента, которым буду пользоваться только один раз. Или тест, который не дает ожидаемых результатов. Если вы хотите создавать масштабируемые инструменты, то я советую оставить это профессионалам (хотя Appengine это отличное место, чтобы начать с создания "настоящих" инструментов).

Начнем с полного новичка

Итак, вы можете быть напуганы. Я собираюсь поговорить о написании функций и строительных инструментов. Ты испачкаешь руки. Но буквально любой может сделать это. Вам не нужно никаких предварительных знаний. Никто. В этом посте начинающий ниндзя должен пройти 5 простых шагов. Шаги, которые я собираюсь охватить:

  1. Простая очистка веб-страниц
  2. Продвинутая очистка веб-страниц
  3. Google Docs Scripts - Секретный соус
  4. Триггеры скрипта
  5. Собираем все вместе

Урок 1 - Простая очистка веб-страниц

Итак, основа использования Google Spreadsheets для удовольствия и получения прибыли - это их изящная маленькая функция ImportXML. Ричард Бакстер написал отличный вступительное сообщение на ImportXML который вы можете проверить. Основная предпосылка заключается в том, что с помощью такой функции: = importxml ("https://www.distilled.net/blog/", "// h2 [@ class = 'entry-title']") (Примечание: это importxml функция была изменена с оригинала, чтобы обрабатывать переход с дистилляции.

Получает нам список заголовков блога в таблицу Google, например:

Получает нам список заголовков блога в таблицу Google, например:

Попробуйте сами! Скопируйте и вставьте этот код в пустой Google Spreadsheet и посмотрим что получится :)

Не пугайся! Есть много вещей, которые вы, вероятно, не понимаете, поэтому давайте рассмотрим их для вас.

Стандартная функция выглядит следующим образом: importxml ("url", "query"). Таким образом, URL-адрес может быть явным (как я напечатал выше) или ссылочным файлом, например this = importxml (A1, «query»), так же, как вы это делаете с обычной функцией электронной таблицы. Запрос представляет собой запрос XPATH. Для справочного руководства по XPATH вот хороший гид ,

Если вы не можете быть обеспокоены чтением этого, то вот несколько быстрых определений (предупреждение!

  • // - это означает выбрать все элементы типа
  • // h3 - это значит выбрать все элементы h3
  • [@ class = ''] - это означает, что выбираются только те элементы, которые соответствуют заданным критериям
  • // h3 [@ class = 'storytitle'] - это означает только те элементы, которые выглядят следующим образом: <h3 class = "storytitle"> Title </ h3>

Пример пошагового руководства по простой очистке веб-страниц

Итак, теперь мы разбираемся с кодом, давайте рассмотрим практический пример. Распространенная задача SEO - «как найти как можно больше блогов на нише X». Поэтому я перебираю Google и нахожу список из 25 лучших блогов на Technorati: http://technorati.com/blogs/top100/ , Это вручную и требует много времени, чтобы нажать на каждый из них, чтобы скопировать ссылку. Я хочу получить список URL-адресов в электронную таблицу как можно быстрее.

1) Сначала мы взглянем на исходный код страницы и увидим что-то вроде этого:

1) Сначала мы взглянем на исходный код страницы и увидим что-то вроде этого:

2) Мы загружаем Google Docs и запускаем функцию importxml. Мы видим, что все блоги находятся в элементах h3 в списке с классом «даже», поэтому давайте попробуем что-то вроде

= importxml (A2, "// li [@ class = 'even'] // h3")) (где A1 - это ячейка с URL-адресом страницы). Мы получаем это обратно:

Проверьте лист Вот ,

3) Как вы видите, он содержит названия блогов, так что мы добираемся туда. Но наш запрос также получает массу других вещей, которые нам не нужны. Итак, давайте посмотрим на код и посмотрим, сможем ли мы выделить список элементов блога. Я считаю, что элемент управления "проверить элемент" в Google Chrome отлично подходит для визуализации этого. Когда вы наводите курсор на код, он выделяет часть страницы, которая к нему относится.

4) Мы уточняем наше предположение, чтобы ограничиться тегом в h3, используя запрос типа

= importxml (A2, "// li [@ class = 'even'] // h3 // a") В свободном переводе написано "получить якорный текст внутри h3, который появляется в списке с class =" even ", что приводит к :

Получить лист Вот ,

5) Мы почти у цели! Теперь у нас есть список всех элементов блога. Следующим шагом является получение URL. Нам по-прежнему нужны имена блогов, но также нужны ссылки, поэтому мы добавим еще один вызов importxml:

= importxml (A2, "// li [@ class = 'even'] // a [@ class = 'offsite'] / @ href") То есть, из элементов li выберите содержимое href из элемента a. Этот / a / @ href очень часто используется для обозначения конца функций importxml, поэтому я предлагаю вам запомнить его. Это приводит к:

И мы сделали! Если вы хотите посмотреть электронную таблицу в Документах Google иди сюда и сделай копию тогда вы можете поиграть в свое удовольствие :)

Урок 2 - Более продвинутая очистка веб-страниц

Хорошо, теперь у нас есть основы, давайте перейдем к более веселым занятиям. Конечно, как только я подключаю компьютеры, мои мысли обращаются к проверке рангов ... Это обычная задача, которую мы можем захотеть сделать, поэтому давайте быстро обсудим, как это сделать. Сначала мы создаем поисковый URL следующим образом: = concatenate ("http://www.google.co.uk/search?q=" & A2 & "& pws = 0 & gl = UK & num = 50"), где запрос для поиска находится в ячейке A2 , Затем мы анализируем URL-адрес Google, используя importxml следующим образом: = importxml (B2, "// h3 [@ class = 'r'] / a / @ href") Я не собираюсь разбирать это, надеюсь, вы сможете разобраться что я получаю со страницы. Опять же, проверьте исходный код страницы, если вы не уверены, что писать в функции importxml. Вывод как это:

Как прежде, Возьмите свою копию здесь ,

Вы заметите, что возвращаемые результаты выглядят менее чем симпатично, и это только потому, что именно так Google структурирует свой HTML. Нам нужно обратить это: .Соединенное Королевство/. Вероятно, есть 10 различных способов сделать это, но вот что я использую:

= формула массива (середина (C2: C51, поиск ("q =", C2: C51,1) + 2, поиск ("& sa", C2: C51,6) -8)). Используя эту формулу, я могу извлечь именно то, что мне нужно, из всех возвращенных результатов, надеюсь, вы сможете выбрать то, что я делаю!

И наконец, мы хотим выяснить, где по дистилляции.net стоит «seo agency london», поэтому воспользуемся этой формулой:

= ArrayFormula (MATCH (1, FIND ("https://www.distilled.net", D2: D51), 0)) Я собирался добавить здесь некоторые пояснения относительно того, что делает эта формула, но на самом деле она становится довольно сложной. Либо вы уже знаете, что делает arrayforumla (в этом случае это должно быть просто), либо нет. В этом случае вы, вероятно, просто хотите скопировать и вставить сейчас :)

На этом этапе я должен отметить, что существует ограничение в 50 вызовов importxml на электронную таблицу, что ограничивает нас от создания полноценного веб-сканера, но для большинства гибких инструментов этого достаточно (особенно в сочетании со сценариями, см. Урок 3).

Урок 3 - Сценарии Google Документов - Секретный соус

Теперь, все это очень хорошо - у нас есть функции, которые извлекают данные, но все это немного "плоско", если вы понимаете, о чем я? Давайте попробуем немного поднять настроение, сделав это MOVE . Для тех, кто знаком с макросами в Excel, скрипты работают очень похожим образом. Однако здесь есть два больших преимущества: возможность сканировать URL-адреса, а также возможность отправлять вам электронные письма. Ницца.

Google Scripts очень мощные и по сути позволяют создавать полнофункциональные программы, поэтому я не буду вдаваться в подробности. Например, уже есть отличные уроки от Google:

Вы можете легко потерять дни своей жизни, просматривая и играя со всеми вещами, которые делают Сценарии Google. Здесь я собираюсь представить простой пример, чтобы показать вам, насколько это ловко. Это ключевой момент - быстро и легко создавать инструменты, которые точно соответствуют вашим потребностям. Давайте представим, что я хочу быстро проверить несколько URL-адресов на их количество твитов, чтобы получить что-то вроде этого:

Проверьте лист здесь ,

Здесь происходит то, что у меня есть список URL-адресов, для которых я хочу проверить количество твитов. Я создал свою собственную функцию, которая принимает один параметр: = twitter (URL), где URL - это ссылка на ячейку со ссылкой, которую я хочу проверить. Вот код:

function twitter (url) {var jsondata = UrlFetchApp.fetch ("http://urls.api.twitter.com/1/urls/count.json?url=" + url); var object = Utilities.jsonParse (jsondata.getContentText ()); return object.count; }

После того, как вы прочитали учебники Google Scripts выше, вам должно быть довольно удобно, как это работает, поэтому я не буду подробно останавливаться на этом. разбор XML учебник скорее всего пригодится.

Урок 4 - Триггеры Google Scripts

Хорошо, теперь для магии. Сценарии Google хороши, но настоящая сила заключается в запуске этих сценариев в различных ситуациях. Вы можете заставить скрипт запускаться по любому из следующих:

  • Электронная таблица открыта
  • Форма отправлена
  • Кнопка нажата
  • Происходит определенное время
Узнайте больше о триггерах скрипта здесь

,

Я думаю, что наиболее полезным здесь является основанный на времени триггер. Давайте кратко рассмотрим написание основанного на времени сценария.

Пример прохождения триггера на основе времени

Давайте снова возьмем простой пример. Когда я пишу этот пост, я знаю, что скоро собираюсь его опубликовать, поэтому давайте создадим электронную таблицу, чтобы проверить ключевое слово «seo tools» и посмотреть, сможет ли QDF перенести этот пост на первую страницу в любой момент. Как злобно ссылаться :)

Шаг 1 - мы пишем простую электронную таблицу для ранжирования, проверяя дистилляцию.co.uk по определенному ключевому слову. Шаг 2 - мы пишем скрипт, который отслеживает ранг и регистрирует его в новой ячейке:

Шаг 2 - мы пишем скрипт, который отслеживает ранг и регистрирует его в новой ячейке:

Шаг 3 - мы создаем основанный на времени триггер для запуска скрипта каждые 30 минут:

Шаг 3 - мы создаем основанный на времени триггер для запуска скрипта каждые 30 минут:

Несколько вещей, на которые стоит обратить внимание:

  • Я использовал = int (now ()) в URL, чтобы каждый раз генерировать уникальный URL. В противном случае Google кэширует данные, и вы не будете получать свежие данные каждый раз
  • Обратите внимание на функции getRange и setValue - они очень полезны, чтобы разобраться. Смотрите этот учебник ,

Окончательный результат (возможно, вам придется прокрутить вниз некоторое время, в зависимости от того, сколько времени после того, как я написал этот пост, вы читаете это!):

Возьмите копию таблицы здесь чтобы увидеть, как это работает.

Урок 5 - собрать все вместе

Итак, наконец, давайте соберем все вместе в забавном примере. Я создал здесь форму, в которой вы можете ввести свой город и свой адрес электронной почты, и мой скрипт получит некоторые данные и отправит их вам по электронной почте. Так же, как магия! Давай, попробуй :)

Продолжая

Небо действительно является пределом, когда дело доходит до Google Scripts, но я думаю, что если вы начнете делать что-то более тяжелое, чем то, что я делал в этом посте, вы почти наверняка захотите начать создавать обработку исключений и научиться правильно кодировать (что Я, чтобы было понятно, очень многое не сделал!). Тем не менее, если вы любите использовать Google Scripts, есть много интересных вещей, которые он может сделать: но для меня реальная сила заключается в том, чтобы за несколько минут собрать вместе вещи, которые собирают нужные мне данные, чтобы я мог вернуться к делать вещи , Я покину здание по-настоящему SEO инструменты для профессионалов теперь :)

Uk/search?
Json?
О том, как смешивать свежевыжатые соки
Ни для кого не секрет, что стакан свежевыжатого овощного или фруктового сока, способен придать заряд энергии и бодрости, а также положительным образом отразиться на состоянии здоровья человека. При этом

Полный список кандидатов в президенты страны станет известен к концу января
9 января 2008, 15:53 Текст: editor На будущей неделе закончится срок приема документов для регистрации кандидатов в президенты. На принятие решения по документам у Центризбиркома будет десять дней. НОРИЛЬСК.

ЄДНІСТЬ : У Києві через високий рівень захворюваності на грип та ГРВІ закрили вже 75 шкіл
У Києві призупинено заняття у 75 школах (2127 класів), у яких рівень захворюваності на грип та ГРВІ перевищив 20%. Інформує  «Є!» , з посиланням на УНІАН. Про це наразі повідомив перший заступник

Список полезных заготовок из овощей и фруктов на зиму
Список полезных заготовок из овощей и фруктов на зиму Август и сентябрь — традиционно хлопотное время для многих хозяек, садоводов и дачников-любителей. В первую очередь необходимо собрать урожай или

Березовый сок можно ли использовать при сахарном диабете
Березовый сок при сахарном диабете — сахарный диабет: все о заболевании и методах лечения Березовый сок с давних времен славится своими целебными свойствами. Дело в том, что в весенний период береза

Свежевыжатые соки. (кому не лень читать)
Вы видели фильм о , которую исследовал японский ученый Имоту Масара? Уникальные опыты показали, что структурированная жидкость может творить чудеса и оздоравливать наши клетки, омолаживая организм

Купажирование и подслащивание соков
Некоторые соки иногда бывают пресными, слишком кислыми или недостаточно сладкими. Чтобы такие соки были полноценными по вкусовым и питательным качествам, к ним добавляют соки из того же вида сырья, но

Лечение рака по Бройсу и др
Лечение Рака по Бройсу. (Рудольф Бройс) «Совсем недавно китайские медики обнаружили, что у онкобольных количество микроэлементов в печени, в волосах и некоторых других органах резко снижено. Возможно,

С каким соком пить водку?
Ответ: С каким соком пить водку? ВИНОВАТ АНТИАЛКОГОЛЬНЫЙ ФЕРМЕНТ - Владимир Георгиевич, главный вопрос

Сок добрый
Министерство общего и профессионального образования Российской Федерации Санкт-Петербургский Государственный Технологический институт (Технический университет) Факультет Экономики и