Как создать собственный поисковый робот с помощью Colab и рекламных инструментов
Опубликовано: 2022-05-25В этом видео мы поговорим о том, как создать собственный поисковый робот с помощью Google Colab, Advertools и некоторых других библиотек Python. Прежде чем вы испугаетесь или выйдете из себя, не делайте этого. Сделайте глубокий вдох. Все будет хорошо. Я даже не называю себя кодером, но то, что у меня хорошо получается, это копирование и вставка. Я знаю, что вы можете использовать эту кнопку Ctrl + C так же хорошо, как и я. Давайте посмотрим, как мы можем создать свой собственный поисковый робот SEO и как мы можем заставить его работать, чтобы помочь нам решить некоторые уникальные проблемы.
Ресурсы
- Получите доступ к Colab здесь.
- Узнайте больше о Advertools здесь.
Стенограмма видео:
Давайте посмотрим, как мы можем создать собственный поисковый робот, используя Google Colab, а также Advertools, библиотеку Python.
Что такое SEO Crawler (паук)?
Сканеры — это инструменты, которые могут сканировать страницы веб-сайта так же, как это делает поисковая система, и это помогает нам получать ценную информацию о SEO. Это помогает нам увидеть веб-сайт так, как его увидят Google, Bing или другие поисковые системы. Есть инструменты, которые это делают. Есть ряд инструментов, которые делают это, самый популярный, вероятно, Screaming Frog SEO Spider, и это инструмент, который мы любим и используем все время, но иногда нам нужно индивидуальное решение.
Зачем вам создавать свой собственный краулер?
Большинство готовых сканеров делают удивительные вещи, но иногда у вас есть конкретный вопрос, на который нужно ответить, и вы можете создать собственный сканер, чтобы контролировать все выходные данные. Вы получаете только те данные, которые вам нужны или нужны. Таким образом, вам не нужно ограничиваться настройкой инструмента, но вы можете выполнить быстрое сканирование веб-сайта или получить только одну часть информации или получить весь объем информации и организовать ее по-другому, используя Colab и Питон.
Что такое рекламные инструменты?
Advertools — это библиотека Python, которая позволяет вам делать множество вещей. Вы можете сканировать веб-сайты, генерировать ключевые слова для своих маркетинговых кампаний в поисковых системах, создавать текстовые объявления, анализировать SERP, получать информацию о сообщениях в социальных сетях и делать многое другое. Это чрезвычайно гибкая библиотека. Он делает много интересных вещей и довольно прост в использовании.
Я бы не назвал себя программистом. Я бы просто сказал, что умею копировать и вставлять. Несмотря на то, что я не являюсь опытным программистом на Python, я смог получить много преимуществ от использования такого инструмента, как Advertools.
Что мы собираемся делать
Это то, что мы собираемся сделать в этом видео.
- Создайте новый файл Colab и установите Advertools
- Создайте собственный поисковый робот с помощью advertools
- Сканирование и анализ веб-сайта и данных
- Визуализируйте некоторые из этих результатов, используя другую библиотеку Python под названием Plotly.
- Экспорт данных
Шаг 1. Создайте файл Colab и установите Adertools
Google Colab — это инструмент, который позволит вам делать множество интересных вещей. Он позволяет вам запускать код в ячейках для создания таблиц, создания собственных программ, выполнения пользовательских действий — от машинного обучения до SEO и многого другого. Если вы никогда не использовали его раньше, его можно использовать бесплатно, и он позволяет вам бесплатно использовать вычислительную мощность Google. Это очень круто, поэтому я настоятельно рекомендую вам проверить это.
Если вы еще не используете CoLab, здесь есть много отличных ресурсов. Одна из вещей, которую вы должны сделать, чтобы использовать библиотеку вне Python, это естественная установка. Вам нужно установить эту программу. Большую часть времени вы используете функцию PIP, а затем извлекаете эту новую библиотеку. Это довольно простой процесс.
Одна из вещей, которую делают все эти ребята, создающие эти программы, — они показывают вам, как именно это настроить в своих документах. Так что всегда читайте эту документацию, и она позволит вам понять: «Как мне импортировать эти инструменты и заставить их работать на себя?»
Чтобы установить Advertools, мы будем использовать эту строку кода прямо здесь:
!pip install advertools
После того, как вы поместите код в камеру в CoLab, нажмите кнопку воспроизведения. Он выполнит этот блок кода. Вы должны увидеть что-то вроде этого, где он устанавливает код и весь пакет, так что теперь мы можем использовать эту библиотеку для создания нашего сканера. Как только вы увидите зеленую галочку, вы знаете, что это сделано.
Шаг 2. Создайте собственный поисковый робот с помощью Advertools
Далее нам нужно выполнить новую строку кода.
import advertools as adv
from advertools import crawl
import pandas as pd
Вы можете нажать кнопку кода здесь, и он заполнит этот новый. Мы собираемся импортировать определенные части библиотеки Advertools. Мы импортируем рекламные инструменты, мы импортируем метод сканирования. Мы также импортируем что-то под названием pandas. Для тех из вас, кто не знаком с Python, панды позволяют нам работать с нашими данными внутри фреймов данных, в основном создавая таблицы в Python.
После того, как вы все это настроили, вы снова запускаете свой код. Это собирается импортировать всю эту информацию. Если мы создаем обход, вы заметите здесь, что речь идет о том, как мы можем это сделать, как мы можем импортировать эти обходы. Есть несколько подходов; вы можете импортировать Advertools, как это сделали мы, и запустить эту командную строку, которая сделает то, что мы делаем.
Мне нравится делать Colab немного проще в использовании на тот случай, если кто-то из моей команды тоже захочет его использовать. Мы собираемся сделать что-то немного отличающееся от того, что они показывают здесь. Но если вы будете следовать этому подходу, вы все сделаете правильно, и это тоже сработает.
site = "https://simplifiedsearch.net/" #@param {type:"string"}
crawl(site, 'simp.jl' , follow_links= True )
crawl_df = pd.read_json( 'simp.jl' , lines= True )
crawl_df.head()
То, что мы собираемся сделать, это строка кода. Первое, что мы делаем, это определяем переменную, и эта переменная будет веб-сайтом, который мы хотим сканировать. Используя эту строку типа параметра, он дает мне поле здесь, которое затем позволяет мне ввести здесь, какой веб-сайт я хочу сканировать. Я могу разместить свой сайт здесь. Я могу разместить здесь любой веб-сайт, и он установит для меня эту переменную. Таким образом, мне не нужно печатать это здесь. Я могу просто ввести его в форму, и кто-то, кому не так удобно щелкать внутри ячейки, может просто пойти сюда и ввести сторону.
В этом случае мы собираемся использовать наш упрощенный поисковый сайт, просто потому, что мы использовали бы его все время. Мы продолжим и вставим его сюда. Прямо под ним мы следуем тем же правилам, что и здесь. Мы используем Advertools.crawl, а затем мы используем сайт в качестве нашей переменной. У нас есть выходной файл. Затем мы хотим, чтобы он переходил по ссылкам на веб-сайте.
Мы также делаем следующий шаг, где мы устанавливаем фрейм данных обхода и говорим ему открыть наш выходной файл, потому что он будет выводить в формате JSON. Панды собираются прочитать JSON и создать для нас фрейм данных. В конце концов, я предлагаю нам просто показать заголовок этого фрейма данных, чтобы убедиться, что все работает, как задумано. Как только мы выполним этот шаг и запустим эту ячейку, мы будем сканировать веб-сайт, и он сделает дамп данных ниже, и мы сможем увидеть все различные функции в рамках этого сканирования.
Я собираюсь пойти дальше и управлять этой ячейкой. Это может занять несколько минут только потому, что выполняется сканирование всего веб-сайта. Когда мы закончим, мы поговорим о том, как мы можем использовать данные сканирования для извлечения определенных фрагментов информации.
Шаг 3. Сканирование и анализ веб-сайта и данных
Теперь сайт просканирован, и вы можете видеть, что у меня есть список URL-адресов, заголовков, метаописаний, точки зрения, набора символов, H1, H2 и H3. Вся эта информация втягивается в этот кадр. Если вы хотите увидеть его немного чище, вы можете нажать эту волшебную кнопку прямо здесь, и Google собирается перенести эти данные сюда в немного более простой для работы фрейм данных. У меня есть общее количество столбцов прямо здесь 266. Это много столбцов, с которыми я могу работать.
Вы можете спросить себя, что находится во всех этих столбцах. Мы можем вернуться сюда к рекламным инструментам, и вы можете увидеть все различные элементы. Существует довольно много экспортных данных, которые мы можем просмотреть и извлечь много полезной информации.

Если мы хотим увидеть список всех доступных столбцов, мы можем запустить этот код:
columns = list (crawl_df)
columns
Сначала нам нужно взять столбцы и создать из них список. Мы будем использовать список кодов, а затем поместим круглые скобки и внутри их crawl_DF, который является именем нашего фрейма данных, и вызовем новые столбцы списка. Здесь у нас есть столбцы, и мы запускаем эту ячейку, и вы можете увидеть все эти различные возможные столбцы. Информации довольно много, как видите, она ищет много информации.
Что, если вы хотите увидеть только часть этой информации? Что, если вы просто хотите получить все заголовки или все метаописания или некоторую информацию тега H, или, может быть, вы хотите увидеть все страницы и тип разметки schema.org, который у вас может быть на них. Вот где пригодится что-то вроде Advertools.
Допустим, мы хотели просмотреть типы JSON-LD на наших страницах.
json_df = crawl_df[[ 'url' , 'jsonld_@type' ]]
json_df
Мы можем начать с нового кода. Давайте продолжим и создадим новый фрейм данных с именем JSON-DF. Мы хотим получить некоторую информацию из нашего исходного фрейма данных. Первое, что мы собираемся сделать, позвольте мне немного спуститься сюда, чтобы всем было легче ползать, _DF. Мы собираемся использовать скобку и еще одну скобку.
Первое, что мы хотим получить, это URL. Мы знаем, что URL-адрес важен, потому что нам нужно знать все страницы нашего сайта, все URL-адреса. Следующее, что мы хотим сделать, это найти тип JSON. Мы можем вернуться к этому списку и перейти к типу JSON, скопировать его и сказать: «Я также хочу знать тип JSON». Я собираюсь продолжить и придерживаться этого, чтобы мы следовали лучшим практикам. Что мы делаем в этой маленькой строке здесь? Мы сказали «создать новый фрейм данных» и использовать данные из нашей исходной базы данных, из нашего исходного фрейма данных и получить только URL-адреса и типы JSON-LD.
Если я запущу это, он создаст новый фрейм данных только с этой информацией. Чтобы увидеть эти данные, я могу просто ввести JSON_DF, создать новую ячейку и нажать Enter. Он дает мне список всех моих страниц и тип разметки, связанный с этими конкретными страницами. Это может быть очень полезно, если вы хотите быстро посмотреть и найти все JSON на своем веб-сайте, какие у вас есть типы и какая у вас разметка.
Кроме того, у вас есть страницы, на которых отсутствует разметка? Вы можете быстро определить их. У нас есть эти новые данные, где у нас есть все наши URL-адреса, и у нас есть все наши типы JSON-LD, которые, как мы знаем, существуют на этой странице.
Шаг 4: Визуализируйте результаты
Допустим, мы хотим создать быстрый отчет или график, чтобы показать клиенту или кому-то еще объем информации и данных, которые мы добавили на этот сайт для них, и их различные типы.
Первое, что мне нужно сделать, это подсчитать все различные типы разметки, которые были добавлены, и тогда я смогу это визуализировать. Давайте начнем с подсчета этого и создания нового фрейма данных. Я уже создал этот код, и я собираюсь провести вас через него:
json_counts = json_df[ 'jsonld_@type' ].value_counts()
json_counts = json_counts.reset_index()
json_counts
Это называется количеством JSON. Это новый фрейм данных. Мы берем данные из столбца JSON-LD прямо здесь. Мы подсчитываем уникальные значения в этом столбце. Когда я запущу этот код, а затем прикажу вывести его, вы увидите, что вся эта информация подсчитана.
Что он делает, так это то, что он дает мне эту ошибку, потому что находит в списке какие-то нули или какой-то NAS. Ничего страшного, потому что через секунду вы увидите, что у нас есть эта информация. Вот все различные типы разметки, и все это было выложено для нас.
Вы также заметили, что это не совсем похоже на фрейм данных, как здесь. Мы должны переиндексировать этот фрейм данных или эту переменную во фрейм данных, чтобы он работал правильно. Мы продолжим и дадим наш фрейм данных и запустим этот код:
json_counts = json_counts.reset_index()
Когда мы запустим это, вы увидите, что у нас есть фрейм данных. У нас есть индекс, который является термином. Затем у нас есть тип JSON-LD и его количество. У нас до сих пор нет графика. У нас все еще есть еще один фрейм данных. Что нам нужно сделать, чтобы превратить этот фрейм данных в визуализацию или график? Мы собираемся использовать что-то под названием Plotly.
Plotly — это еще одна библиотека, очень похожая на Advertools, которую мы можем использовать для создания визуализаций, и, в частности, мы собираемся использовать Plotly Express. Первое, что нам нужно сделать, это установить Plotly, мы идем дальше и делаем PIPinstallPlotly, я собираюсь запустить эту ячейку. Он уже установлен на этом листе, но все в порядке. Как видите, он сообщит нам, что он уже установлен, уже удовлетворен. Мы готовы идти.
Возьмите этот код, который мы только что скопировали отсюда, и вставьте его обратно в наш поисковый робот. Нам не нужен этот средний, потому что это данные, которые мы не используем. Мы используем собственные данные. Нам нужно импортировать Plotly Express как PX, и нам нужно подключить нашу новую базу данных здесь, чтобы получить правильную информацию в нашу диаграмму.
! pip install plotly
import plotly.express as px
fig = px.bar(json_counts, x='index', y='jsonld_@type')
fig.show()
Наш фрейм данных назывался JSON counts. В нашем X мы будем использовать индекс, а в Y мы будем использовать тип JSON. Почему я выбрал именно их? Индекс находится там, где слова. Мы хотим, чтобы они были в X, а затем счет идет на JSON-LD @type, и это будет наш Y, который скажет нам, сколько в каждом из этих столбцов. Мы продолжим и поместим это здесь. Довольно просто. И тогда fig.show покажет этот график. Итак, теперь у нас есть все наши разные типы здесь, а здесь у нас есть разные количества каждого типа в красивом графике.
Если вы хотите поделиться этим, вы можете загрузить его в формате PNG, и теперь Plotly загрузит его на ваш компьютер. Вы можете взять это и сказать: «Мы сделали столько-то пометок на этих многих страницах». Довольно крутой способ быстро визуализировать это.
Шаг 5: Экспорт данных
Однако что, если мы захотим скачать все эти данные и работать с ними, может быть, в гугл-таблицах или где-то еще? Ну, вы также можете сделать это, чтобы сделать это. Нам просто нужно использовать еще одну строку кода, и все готово. Допустим, мы собираемся загрузить эту таблицу со всеми страницами нашего веб-сайта и типом JSON-LD. Мы можем перейти к этой ячейке или к любой другой, которую вы хотите, а затем мы создадим новую строку кода.
Нам нужно использовать что-то из Google Colab, называемое файлами импорта. Это первое, что мы собираемся сделать. Далее мы собираемся найти этот фрейм данных, который представляет собой JSON-DF. Мы добавим это ниже и скажем .2_CSV, а затем дадим ему имя. Мы можем назвать это JSON_DF.CSV. После того, как вы ввели этот код, вы создали файл CSV. Если я загляну сюда, в свою папку, вы увидите файл прямо здесь.
Отсюда я мог бы просто загрузить его или добавить сюда строку кода, которая поможет нам загрузить его еще быстрее. Я мог бы сказать files.download, а затем вызвать этот файл, который я только что создал, и я попросил Colab просто загрузить его для меня напрямую. Когда я запускаю эту ячейку, она загружает этот файл, и вот он у меня. Я могу продолжить, нажать «Открыть», и теперь у меня есть этот CSV-файл, с которым я могу делать все, что захочу, с любым инструментом для работы с электронными таблицами, который у меня есть. Я также вижу те, в которых, возможно, отсутствует разметка.
Вот оно. Мы пошли дальше и создали свой собственный поисковый робот. Мы получили некоторые пользовательские данные. Мы визуализировали эти данные и загрузили их для использования в других программах. Мы все это делали, и я не программист, даже не пытаюсь им притворяться. Как я уже говорил, я просто хорошо умею копировать и вставлять. Вы, ребята, тоже можете разобраться в этих вещах.
Когда у вас есть вопросы, всегда есть интересные решения. Если вы хотите попробовать что-то новое и необычное, я настоятельно рекомендую вам поиграть в Colab. Есть много отличных ресурсов. Есть много людей, которые намного умнее меня и делают гораздо более удивительные вещи, от которых я многому научился и которые помогли мне в моей маркетинговой игре, исследованиях, сканировании и многом другом.
Если у вас есть какие-либо вопросы о том, что мы сделали сегодня, пожалуйста, оставьте комментарий ниже. Я также собираюсь предоставить доступ к этому конкретному файлу CoLab и даже шаг за шагом поделюсь кодом, который мы использовали на этом пути. Большое спасибо за просмотр. Не забудьте подписаться и до следующего раза, удачного маркетинга.