Массовая проверка доменов на занятость с помощью Python


Как проверить занятость доменов из списка с помощью Python

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

Поэтому, когда выпадает возможность и время мы всегда стараемся как можно больше автоматизировать рутинные задачи в SEO и если получается чтото более-менее годное, делимся этим с нашими читателями и подписчиками.

Итак, для процедуры автоматизации проверки доменов на занятость, нам понадобится Python, и всего одна дополнительная библиотека.

1. Открываем командную строку и устанавливаем дополнительную библиотеку python - pip install python-whois - данная библиотека поможет нам проверить домен на занятость используя сервисы whois

2. После установки библиотеки все готово для запуска кода:

2.1 Кроме библиотеки python-whois нам необходима еще одна библиотека, которую не нужно устанавливать, так как она входит в стандартные библиотеки Python и устанавливается вместе с Python - это библиотека re. Данная библиотека дает возможность использовать регулярные выражения в коде, импортируем ее тоже:

3. Для того чтобы работать с библиотеками нам необходимо их импортировать, поэтому импортируем наши библиотеки:


import whois
import re

4. Доменные имена проще читать из файла, для большего удобства, чтобы не создавать список в самой программе, поэтому создаем текстовый документ в переменной среде path, у меня он будет называться 1.txt, в нем указываем домены, которые будут проверяться, каждый домен с новой строки (без http и www, чисто домен) и возвращаемся к коду и укажем программе, что мы хотим открыть файл:


f = open('1.txt')

5. После открытия файла, нам нужно его прочитать, мы будем читать файл построчно перебирая все домены в нем по порядку и так как каждый домен указан с новой строки, это будет удобно:


s = f.readline()

Так как мы читаем домены из файла построчно, то необходимо создать цикл, чтобы программа брала каждый домен и проверив его, переходила к другому, создаем цикл:


while(s):

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


s = re.sub("^\s+|\n|\r|\s+$", '', s)

6. И вот мы уже на финальной прямой)). Следующим шагом будет обращение к библиотеке python-whois, тут мы спросим у нее, есть ли данные по домену находящемуся в переменной s. И если данные есть выведем на экран фразу "Домен занят", а если же нам повезло и домен свободен, то мы используя исключение получим на экран "Домен свободен":


    try:
        m = whois.whois(s)
        print("Домен занят")
    except:
        print("Домен свободен")
    finally:
        print("______________________________")
        s = f.readline()

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


        import whois
        import re

        f = open('1.txt')
        s = f.readline()
        while(s):
            s = re.sub("^\s+|\n|\r|\s+$", '', s)
            print(s)
            try:
                m = whois.whois(s)

                print("Домен занят")
            except:
                print("Домен свободен")

            finally:
                print("______________________________")
                s = f.readline()

Внимание!!! Программа может проверить только домены TLDs, если при запуске появляется ошибка, значит доменная зона не поддерживается (как сканить домены в других доменных зонах, обязательно читайте в наших следующих статьях). Также важно помнить, что большое количество обращений к серверу whois с одного ip может привести к блокировке вашей айпишки на некоторое время, поэтому лучше использовать прокси для максимально эффективного использования данного кода

Применить данный код можно в разных вариантах:

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

Регулярный запуск кода для постоянного мониторинга освободившихся доменов.

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

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

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

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