Проверка индексации страниц сайта в Google


Проверка индексации страниц сайта в Google

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

Не будем оттягивать и сразу приступим к делу. Импортируем модули:


    import requests
    import pandas as pd

Присвоим переменной словарь с юзерагентом:


    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}

Создадим словарь в который сохраним результаты и опции. Опции будем добавлять в URL запроса перед отправкой самого запроса:


    d = {}
    options = {
     'muteHttpExceptions': True,
     'followRedirects': False
  };

В переменной среде path руками создаем файл и вставим туда все url нашего сайта, каждый с новой строки, у нас он будет называться all-website-url.txt, теперь вернемся к коду и открыв файл прочитаем из него все данные в переменную response_url:


    with open('all-website-url.txt', encoding="utf-8") as f:
        response_url = [line.strip() for line in f]

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


    for i in response_url:
        resp = f'https://www.google.ru/search?q=site:{i}'
        response = requests.get(resp, options, headers=headers).text
        if "не знайдено жодного документа" in response:
            print("Не в индексе")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("Не в индексе")
        else:
            print("В индексе")
            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("В индексе")

Создадим табличку с данными с помощью Pandas и сохраним его в таблицу Excel, запускаем и отдыхаем, когда код завершит работу, у нас будет готовая таблица с данными:


    df = pd.DataFrame(data=d)
    df.to_excel('./googlecheckindex.xlsx')

И самое важное, помните, что в Python нужно соблюдать отступы или один таб или 4 пробела, код нужно привести к такому виду как он указан на сайте, если при копировании (такое бывает довольно часто) количество отступов изменилось или они пропали вообще.

Не забудьте подписаться на наш телеграм канал@py4seo, будет еще много интересного

Все бэкслеши в конце строк можно удалить и убрать перенос строки, т.е. грубо говоря бэкслеш говорит питону от том, что тут код очень длинный, делаем перенос строки.

Полная версия кода ниже:


import requests
import pandas as pd


headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}
d = {}
options = {
     'muteHttpExceptions': True,
     'followRedirects': False
  }

with open('all-website-url.txt', encoding="utf-8") as f:
    response_url = [line.strip() for line in f]


    for i in response_url:
        resp = f'https://www.google.ru/search?q=site:{i}'
        response = requests.get(resp, options, headers=headers).text
        if "не знайдено жодного документа" in response:
            print("Не в индексе")

            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("Не в индексе")
        else:
            print("В индексе")
            d.setdefault("URL", []).append(i)
            d.setdefault("Статус", []).append("В индексе")

df = pd.DataFrame(data=d)
df.to_excel('./googlecheckindex.xlsx')