Проверка ответа сервера сайта и title c помощью Python

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

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

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

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

Данная модель предусмотрена для пользователей, которые по-крайней знакомы с Python и имеют общее представление как все работает.

Давайте разберем как проверить ответ сайта и его title с помощью Python:

  • Проверка будет проводиться с помощью Selenium, поэтому первое что нам понадобиться, это geckodriver, проверять будем через firefox, если у вас не стоит Mozilla ее необходимо установить на ваш ПК.
  • После установки браузера Mozilla, идем в репозиторий firefox и качаем geckodriver. (Обратите внимание, мы будем запускать код на OC Windows, поэтому качаем драйвер для винды. Если у вас другая ОС, выбираем драйвер для сооьветствующей ОС.)
  • Для того, чтобы geckodriver работал, нужно после загрузки извлечь его из архива и поместить в переменную среду path, т.е. туда, откуда python по-умолчанию запускает код.
  • Когда драйвер помещен в переменную среду, открываем командную строку и загружаем пакет Selenium для python введя в командную строку следующие команды - pip install selenium

  • Установка Selenium webdriver
  • Как только пакет будет загружен, можно приступать к коду:

  • 
    #импортируем необходимые модули для работы
    from selenium import webdriver
    import time
    from selenium.webdriver.common.keys import Keys
    
    #присваеваем вебдрайвер переменной
    driver = webdriver.Firefox()
    #создаем текстовый файл на рабочем столе, куда будет сохранен отчет
    open(r'C:\Users\user\Desktop\result.txt', 'w').close()
    
    #создаем функцию, котрая проверит соответствие title сайта, если тайтл совпадает
    #и соответственно сервере отвечает, в файл будет записан домен и его состояние -
    #On air или Error.
    
    def url(a, b):
        try:
            driver.get(a)
    
            if b in driver.title:
                print('On air')
                f = open(r'C:\Users\user\Desktop\result.txt', 'a')
                f.write(a + " - On air"+'\n')
            else:
                print("E r r o r!!!")
                f = open(r'C:\Users\user\Desktop\result.txt', 'a')
                f.write(a + " - E r r o r!!!"+'\n')
    
        except:
            print("E r r o r!!!")
            f = open(r'C:\Users\user\Desktop\result.txt', 'a')
            f.write(a + " - E r r o r!!!"+'\n')
    
    #указываем в переменной наш тайтл, который необходимо проверить и адрес сайта
    #или страницы
    b = "Блог по программированию с нуля - Проверка ответа сервера сайта и title c помощью Python"
    a = r'https://4python.pythonanywhere.com/check_title.html'
    url(a, b)
    time.sleep(3)
    driver.close()
    

  • Таким образом, указав все необходимые тайтлы и адреса сайтов, мы получим результат в текстовом файле на рабочем столе. Один раз собрав тайтлы и записав их в переменные, мы можем запуская код каждый день, в кратчайшие сроки получить результат.
  • Код простой и здесь не учтено много деталей, но как по мне, то главное все же результат.
  • Углубившись и потратив больше времени можно автоматически собирать тайтлы и подставлять домены, а также искать лишние ссылки на сайте, полностью автоматизировав данный процесс.
  • Не забудьте подписаться на наш телеграм канал@py4seo, будет еще много интересного