Используйте Python для синтаксического анализа и сводки файлов SEO

Опубликовано: 2021-08-10

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

Как использовать Python для синтаксического анализа и сводки файлов SEO

Почему следует использовать Python для синтаксического анализа и сводки файлов SEO

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

  • Подтвердите свои выводы, предоставив вам конкретные доказательства того, как поисковые системы сканируют и видят ваш веб-сайт.
  • Расставьте приоритеты в своих выводах, помогая увидеть масштаб проблемы и то, насколько ее исправление может помочь
  • Найдите любые другие проблемы, которых вы не видите в других источниках данных.

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

Хотя это все обоснованные опасения, есть и другой способ. Если у вас есть некоторые знания языков программирования и сценариев , вы можете автоматизировать этот процесс. Мы расскажем, как использовать Python для анализа журналов сервера для SEO.

Как использовать Python для синтаксического анализа и сводки файлов SEO

Перед тем как начать, вам нужно будет подумать, какой формат вы хотите использовать для анализа данных файла журнала. У вас есть несколько вариантов, например Apache, Nginx и IIS. Кроме того, многие веб-сайты сейчас используют поставщиков CDN, таких как Cloudflare, Cloudfront и Akamai, для доставки контента из ближайшего периферийного местоположения к пользователю.

В этой статье мы сосредоточимся на комбинированном формате журнала. Это связано с тем, что формат журнала объединения используется по умолчанию для Nginx и обычно выбирается на серверах Apache.

Если вы не знаете, с каким форматом имеете дело, существуют такие службы, как Builtwith и Wappalyzer, которые могут рассказать вам о техническом стеке веб-сайта.

Если вы все еще не уверены, просто откройте один из необработанных файлов. Сделайте перекрестные ссылки на комментарии, предоставленные с информацией по конкретным полям.

Вам также нужно будет подумать, какую поисковую систему вы хотите включить. В этой статье мы сосредоточимся на Google, потому что Google - самая доминирующая поисковая система, на долю которой приходится более 92% мирового рынка .

Используйте Python для синтаксического анализа и сводки файлов SEO

1. Определите файлы и определите форматы

Чтобы выполнить последовательный SEO-анализ, вам понадобится как минимум около 100 000 запросов и данные за две-четыре недели для типичного веб-сайта. Из-за размеров файлов журналы обычно делятся на отдельные дни. Скорее всего, вы получите несколько файлов для обработки.

Поскольку вы не знаете, с каким количеством файлов вы будете иметь дело, если не объедините их перед запуском скрипта, первым шагом является создание списка всех файлов в нашей папке с помощью модуля glob. Затем вы можете вернуть любой файл, соответствующий указанному нами шаблону. Следующий код будет соответствовать любому файлу TXT:

импортный глобус

файлы = glob.glob ('* txt.')

Однако не все файлы имеют формат TXT. Файлы журнала могут быть разных форматов. Возможно, вы даже не узнаете расширение файла.

Также возможно, что полученные вами файлы будут разделены на несколько подпапок, и мы не хотим тратить время на их копирование в одно место. К счастью, glob поддерживает как рекурсивный поиск, так и операторы с подстановочными знаками . Это означает, что вы можете создать список всех файлов в подпапке или дочерних подпапках.

files = glob.glob ('** / *. *', рекурсивный = True)

Затем вы хотите определить, какие типы файлов находятся в вашем списке. Для этого можно определить тип MIME конкретного файла. Это говорит вам, с каким файлом вы имеете дело, независимо от расширения.

Вы можете сделать это, используя python-magic, оболочку для библиотеки libmagic C, и создав простую функцию.

pip установить python-magic

pip установить libmagic

импортная магия

def file_type (путь_файла):

mime = magic.from_file (file_path, mime = True)

вернуть мим

Затем вы можете использовать анализ списка, чтобы просмотреть файлы в цикле и применить функцию, создав словарь для хранения как имен, так и типов.

file_types = [file_type (файл) для файла в файлах]

file_dict = dict (zip (файлы, типы_файлов))

Наконец, используйте функцию и цикл while для извлечения списка файлов, которые возвращают MIME-тип text / plain и исключают все остальное.

несжатый = []

def file_identifier (файл):

для ключа значение в file_dict.items ():

если файл в значении:

uncompressed.append (ключ)

а идентификатор_файла ('текст / простой'):

file_identifier ('текст / простой') в file_dict

как анализировать и сводить файлы журнала поисковой оптимизации

2. Извлеките запросы поисковых систем.

После фильтрации файлов в вашей папке или папках ваш следующий шаг - отфильтровать сами файлы, извлекая только те запросы, которые вас интересуют.

Это избавляет от необходимости объединять файлы с помощью утилит командной строки, таких как GREP или FINDSTR, и экономит ваше время на поиск нужной команды.

В этом случае, поскольку вам нужны только запросы робота Googlebot, вы будете искать «робот Googlebot», чтобы он соответствовал всем соответствующим пользовательским агентам.

Вы можете использовать функцию Python open для чтения и / или записи вашего файла и модуль регулярных выражений Python, RE, для выполнения поиска.

3. Запросы на синтаксический анализ

Есть несколько способов синтаксического анализа запросов. В этой статье мы будем использовать встроенный анализатор CSV Pandas и некоторые базовые функции обработки данных, чтобы:

  • Удалите ненужные столбцы
  • Отформатируйте отметку времени
  • Создайте столбец с полными URL-адресами
  • Переименуйте и измените порядок оставшихся столбцов

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

4. Подтвердите запросы

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

Для этого вам необходимо установить библиотеку под названием dnspython и выполнить обратный DNS. Вы можете использовать pandas, чтобы удалить повторяющиеся IP-адреса и выполнить поиск в меньшем DataFrame. Затем повторно примените результаты и отфильтруйте все недопустимые запросы.

Такой подход значительно увеличивает скорость поиска и проверяет миллионы запросов всего за несколько минут.

почему вы должны использовать python для seo файлов

5. Сверните данные

После проверки у вас есть очищенный и простой для понимания набор данных. Вы можете начать сводить эти данные, чтобы упростить анализ достопримечательностей.

Вы можете начать с простой агрегации, используя функции Pandas groupby и agg, чтобы подсчитать количество запросов для различных кодов состояния.

status_code = logs_filtered.groupby ('Код состояния'). agg ('размер')

Чтобы воспроизвести тип подсчета, который вы используете в Excel, вам необходимо указать агрегатную функцию «размер», а не «количество». Если вы используете count, вы вызовете функцию для всех столбцов в DataFrame, а нулевые значения обрабатываются по-разному. Сброс индекса восстановит заголовки для обоих столбцов, и последний столбец можно переименовать во что-то более подходящее.

Если вам нужны более продвинутые манипуляции с данными, встроенные сводные таблицы Pandas предлагают функциональность, сопоставимую с Excel, что делает возможным сложное агрегирование с помощью всего одной строчки кода. На самом базовом уровне функция требует указанного DataFrame и индекса (или индексов, если требуется мультииндекс) и возвращает соответствующие значения.

Для большей конкретности можно объявить требуемые значения и применить агрегаты (сумма, среднее и т. Д.) С помощью параметра aggfunc. Параметр columns также может помочь вам отображать значения по горизонтали для более четкого вывода.

Включение диапазонов

Для таких точек данных, как байты, которые могут иметь много разных числовых значений, вам нужно будет сегментировать данные. Для этого определите свои интервалы в списке, а затем используйте функцию cut для сортировки значений по ячейкам, указав np.inf, чтобы уловить что-либо о заявленном максимальном значении.

6. Экспорт

Наконец, вам нужно экспортировать данные журнала и сводки. Чтобы упростить анализ, вы захотите экспортировать свои данные в файл Excel, а не в CSV. Файлы XLSX поддерживают несколько листов, что означает, что вы можете объединить все DataFrames в один файл. Вы можете добиться этого, используя to excel. Вам нужно будет указать объект ExcelWriter, потому что вы добавляете более одного листа в одну книгу. Кроме того, когда вы экспортируете большое количество сводных таблиц, это помогает упростить задачу, сохраняя DataFrames и имена листов в словаре и используя цикл for.

Имейте в виду, что ограничение на количество строк в Excel составляет 1 048 576 строк. Поскольку вы экспортируете каждый запрос, это может вызвать проблемы, если у вас большие образцы. Файлы CSV не имеют ограничений, поэтому оператор if можно использовать для добавления в экспорт CSV в качестве запасного варианта. Затем, если длина DataFrame файла журнала превышает 1 048 576, он будет экспортирован как CSV. Это предотвращает сбой сценария и по-прежнему объединяет сводные данные в один экспорт.

как использовать Python для SEO

Анализ и изменение файлов SEO с помощью SEO Design Чикаго

Хотя использование Python для синтаксического анализа и сводки файлов SEO - полезный навык, его также сложно освоить. Если вам нужна помощь с вашими файлами SEO, обратитесь за помощью к экспертам по данным SEO в SEO Design Chicago !

FAQs:

  • Что такое Python?
  • Как использовать Python для анализа и преобразования моих файлов SEO?
  • Почему я должен использовать Python для синтаксического анализа и преобразования моих файлов SEO?
  • Как извлекать запросы поисковых систем с помощью Python?
  • Нужно ли мне знать, как писать код для синтаксического анализа и сворачивания моих файлов SEO?