Проверив индексацию сайта можно сразу же определить есть ли у 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')