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

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

Недавно нашел у ребят в телеграм канале @py4seo вот такое необычное и простое решение. Автоматизация упрощает работу и освобождает ваши руки для более важных дел.

Поэтому, когда выпадает возможность и время мы всегда стараемся как можно больше автоматизировать рутинные задачи в 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 пробела, код нужно привести к такому виду как он указан на сайте, если при копировании (такое бывает довольно часто) количество отступов изменилось или они пропали вообще.

Начать дискуссию