В этой статье я расскажу вам, как массово проверить доступность информации на поле в WHIS. Немного о том, что это за SEO и как сэкономить деньги на услугах, предлагающих такие услуги, если у вас есть сотни тысяч областей. Эта статья будет полезна для тех, кто занимается SEO и PBN, и пожелает сэкономить деньги на проверке WHOIS в платных услугах. Python будет использоваться. Но это будет полезно не только для ценителей языка змей, но и для тех, кто действительно хочет это понять.

Если вы хотите сразу закончить решение, вы можете сделать это. Доступ к разделу статьи «Передача скрипта в Google Colab». Там будет ссылка на ноутбук в Колабе. Перейти запустить массовый скрипт, проверьте свои области.

Что такое whois?

Прежде чем начать, я хотел бы выбрать берег, что такое WOTIS и как это работает. Одним словом, Whois (из английского. Кто такой — «Кто это?») — Это сетевой протокол, основанный на протоколе TCP. На самом деле Это соглашение о том, как передавать информацию Когда вы просите сервер, от клиента на владельцах доменных имен и их регистрационных данных, таких как: данные о регистраторе домена, дата первой регистрации, дата регистрации, контактные данные владельца домена и т. Д.

Информация о зарегистрированных областях находится на различных серверах WHOIS. Одна из задач WHOIS по домену состоит в том, чтобы определить правильный сервер WHOIS, чтобы получить полные данные на домене.

Почему это необходимо в SEO?

Если вы работаете с PBN, перейдите к следующему пункту, вы все это знаете. Обычно WHOIS используется для проверки доступности поля для записи, то есть домен свободен или нет. Например, вам нужно найти область для разработки ее основного веб -сайта бренда. Мы решаем с именем домена, и первое, что мы собираемся проверить, бесплатно ли он. Или вы должны развернуть боковой сайт для оправа по продвижению основного сайта. Затем вы должны сначала найти место, где один раз на вашем предмете был список мест, в которых были сайты, и уже проверить эти области в Вайсе.

Если у вас есть несколько областей, вы можете использовать любую службу управления WHOIS. Вы можете сделать это непосредственно на веб -сайте регистратора домена и проверить его для доступности. В случае доступности, зарегистрируйтесь немедленно.

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

Услуги массовой проверки WHOIS

И теперь мы постепенно идем к решению массовой проверки WHOIS. На российском рынке достаточно услуг, которые решают эту проблему. Я принес несколько ниже.

  • https://arsenkin.ru/tools/whois/

  • https://digimetr.com/ru/info/massovaya-proverka-whois

  • https://a-parser.com/docs/parsers/net-whois

  • https://www.rush-naalytics.ru/land/whois

  • https://www.reg.ru/domain/new/bulk

ЧИТАТЬ  Как сделать отступ абзаца в WordPress — 4 простых метода » Rank Math

Я не буду рассматривать работу этих TLE, потому что я не использовал их. Но на основе описания их сайтов и опубликованных цен мы можем сказать, что он дорогой или ограничен количеством областей, проверенных для итерации.

Я должен сказать, что это отличные услуги, которые не только в верхней части двух поисковых систем (а именно, я нашел их). Они идеально решают проблемы большинства клиентов. Если у вас есть небольшое количество проверенных областей, вы можете безопасно попробовать одну из этих услуг, они решит вашу проблему на 100% (и не только эта). Скорее всего, вы все равно используете их.

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

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

Трудности в получении WHOIS для разных TLDS

Но всегда стоит сказать о трудностях. На самом деле, массовая проверка WHOIS-довольно не проблема. Протокол, на котором основан ответ сервера WHOIS Содержит очень мало информации и деталей. Нет четких и подробных правил, как должен быть создан ответ. Какие поля необходимы, следующие и т. Д. Следовательно, ответы различных серверов WHOIS (чтение: разные зоны домена) могут значительно отличаться друг от друга. Например, мы проверим данные через Unix utilitu whoisПолем Просто войдите в команду в консоли.

whois vk.ru

И мы получаем такой ответ:

Тот же запрос на домен VK.com:

Как говорится, почувствуйте разницу. Несмотря на то, что эти два сервера WOIS являются русскими. В случае, поле с именем домена называется доменв другом Доменное имяПолем В первом — конец регистрации отображается в оплачен дов другом Дата истечения срока действия регистрацииПолем Должен ли я говорить о различиях в других областях области? Вопрос риторичен. Тем не менее, решение проблемы: массово проверить WHOIS на наличие различных областей домена — есть.

Пых мой собственный-крик

На Python написана большая библиотека, с которой вы можете проверить информацию для самых популярных областей домена. Его зовут: Python-quiПолем Эта библиотека принимает поиск правильного сервера WOIS и анализ информации этого сервера. Другими словами, когда запросы на различные зоны домена мы получаем один стандартизированный ответ с одинаковыми полями доступа.

Создать проект

Мы создаем папку с проектом, в котором будут храниться файлы программ. Я позвоню ему ВОЗИСПолем Создайте виртуальную среду.

python -m venv venv

И я активирую это.

source venv\bin\activate

Затем установите библиотеку Python-quiПолем

pip install python-whois

Мы создаем файл анализа, whois_checker.pyПолем А затем напишите нам весь код в этом файле.

Впервые звонит

Все, что вам нужно, чтобы бороться с WHOIS, импортировать библиотеку и позвонить в метод.

import whois

resp = whois.whois("google.com")

print(resp)

Запустите код и получите этот словарь:

ЧИТАТЬ  Использование компьютера: 17 важных аспектов использования компьютера

Чтобы получить доменное имя, просто вызовите соответствующий метод объекта WHOIS:

import whois

resp = whois.whois("google.com")

# Получить имя домена
print(resp.domain_name)

И мы получаем Google.com. Аналогичным образом, мы получаем дату первой регистрации и дату регистрации.

import whois

resp = whois.whois("google.com")

# Получить имя домена
print(resp.domain_name)

# Получить дату регистрации
print(resp.creation_date)

# Получить дату окончания регистрации
print(resp.expiration_date)

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

Whois для списка доменов

Создайте список нескольких областей. Например, я взял 10 областей.

domains = [
    "ehow.com",
    "menshealth.com",
    "sportingnews.com",
    "pearson.com",
    "blackrock.com",
    "tmcnet.com",
    "shopstyle.com",
    "diesel.com",
    "lightreading.com",
    "art.com",
]

Мы пишем функцию, которая получает этот список у входа и отправляет запросы в WHOIS на каждую область цикла. Результаты записаны в отдельном списке и направляют их.

# Чекер whois информации для списка доменов
def whois_checker(domains):
    list_data = []
    for domain in domains:
        whois_data = whois.whois(domain)
        list_data.append(whois_data)
    return list_data

Мы получаем такой длинный список всех данных WHOIS для каждого поля, поэтому все работает.

Теперь, из этого ответа, вы должны получить только доменное имя, дату регистрации и дату завершения регистрации. Мы пишем другую функцию, которая будет. У входа функция получает всю информацию от WHOIS для поля. Если эта информация получена, мы возвращаем словарь с необходимыми данными.

# Извлечение данных из ответа whois
def extr_whois_data(domain_info):
    if domain_info:
        return {
            "domain": domain_info.domain_name,
            "creation_date": domain_info.creation_date,
            "expiration_date": domain_info.expiration_date
        }
    return None

И назовите эту функцию внутри функции Whois_checker ().

# Чекер whois информации для списка доменов
def whois_checker(domains):
    list_data = []
    for domain in domains:
        whois_data = whois.whois(domain)

        # Достаем необходимые данные из ответа
        list_data.append(extr_whois_data(whois_data))
    return list_data

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

Мы увеличиваем количество доменов

Сегодня давайте увеличим количество областей с 10 до 100, обратите внимание на данные, полученные в отдельном файле, и измерем время работы сценария.

Чтобы не написать список из 100 областей в коде, мы напишем отдельную функцию для чтения файла.

# Чтение доменов из файла
def read_domains_from_file(file_path):
    with open(file_path, "r", encoding="utf-8") as file:
        return [line.strip() for line in file]

И я просто перевожу 100 областей в местный Txt.

Сохранить данные в файле

Теперь давайте напишем функцию для сохранения данных, полученных в текстовом файле, разделенном запятыми. На входе функция получает нашу информацию и путь к файлу. И конструктивно записывает данные файла.

# Запись данных в файл, разделенные запятыми
def write_results(file_path, results, mode="a"):
    with open(file_path, mode, encoding="utf-8") as file:
        for row in results:
            line = ",".join([
                str(row.get("domain", "")).lower(),
                str(row.get("creation_date", "")),
                str(row.get("expiration_date", ""))
            ])
            file.write(line + "\n")

Кроме того, вы должны иметь дело с случаем, когда в списке проверенных доменов может быть вдвое. Для этого мы пишем функцию, которая их исключает.

# Удаление дублей в списке доменов
def get_unique_domains(domains):
    return {domain for domain in domains}

Теперь вам нужно немного изменить функцию Whois_checker () Чтобы справиться с случаем, когда нет данных с сервера WHOIS. Это означает, что поле бесплатно для записи. Для этого мы просто упоминаем исключение и возвращаем НиктоПолем

# Чекер whois информации
def whois_checker(domain):
    try:
        whois_data = whois.whois(domain)
        return extr_whois_data(whois_data)
    # В случае ошибки возвращаем None
    except Exception as e:
        print(f"Failed to fetch whois for {domain}: {e}")
        return None

Мы переписываем запуск сценария

В стартовом дизайне мы переписываем звонки.

if __name__ == "__main__":
    start_time = time.time()
    
    # Получаем список доменов из файла
    domains = read_domains_from_file("domains.txt")

    # Получаем только уникальные домены
    unique_domains = get_unique_domains(domains)

    # Определяем имя файла для сохранения
    RESULTS_FILE = "results.txt"

    # Прописываем заголовки файла
    with open(RESULTS_FILE, "w", encoding="utf-8") as file:
        file.write("domain,creation_date,expiration_date\n")

    for domain in unique_domains:

        # Получаем данные о домене в WHOIS
        whois_data = whois_checker(domain)
        
        # Если данные есть, записываем данные в файл
        if whois_data:
            write_results(RESULTS_FILE, [whois_data])
        
        # Если данные отсутствуют, значит домен свободен для регистрации
        else:
            write_results(RESULTS_FILE, [{
                "domain": domain,
                "creation_date": None,
                "expiration_date": "Available"
            }])

    # Замеряем время выполнения
    end_time = time.time()
    print(f"Execution time: {round(end_time - start_time, 3)} seconds")

Проверка скрипта

Запустить сценарий.

ЧИТАТЬ  Apple, возможно, работает над тем, как запускать LLM на устройстве и навсегда изменить ваши iPhone

Откройте текстовый файл в любом редакторе, который поддерживает формат CSV (данные разделены запятыми). И мы получаем такие данные. 3 столбец: домен, дата регистрации, дата окончания. Мы видим, что есть свободные домены.

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

Перевод Skripte в Google Colab

Все эти документы, которые были продемонстрированы выше — Собрано вместе в Google ColabПолем Перейдите по ссылке и запустите.

Работа нюансы в Google Colarb

Сначала вы должны скопировать ноутбук.

Эта ячейка отвечает за загрузку файла с областями:

После запуска сценария он будет предложен для загрузки файла. Выберите файл в формате TXT и загрузите список доменов.

Все файлы будут храниться на этой вкладке.

Для запуска перейдите на «Среда выполнения> делать все».

Я также добавил задержку между запросами, потому что в Colaab он быстро отправляет запросы в цикл. И это может быть проблемой, потому что мы можем опираться на пределы сервера WHOIS.

Газеты будут отображаться ниже.

WHOIS-KEKER увеличивает до 100 000 районов

Скращая это на 100 000 областей, гипотетически мы получим все данные за день дня. Учитывая сбережения денег, чтобы проверить эту шкалу в услугах от 5 до 20 000 рублей, я думаю, что это терпимо. Опять же, все эти услуги не смогут справиться с таким количеством итерации. И неясно, как долго проходит лечение во многих областях. Кстати, если вы использовали его, напишите в комментариях о том, как долго вам нужно массировать WHOIS, приблизительно?

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

Кроме того, существует проблема ограничения запросов на серверы WOIS. Где -то это ограничения на запросы в минуту, где -то в течение дня. Например, сервер Whois.tcinet.ru Он ограничивает запросы до 120 в минуту, что довольно хорошо. И сервер Whois.dns.pl Ограничение 100 запросов в день для IP.

Если у вас нет экзотических областей домена, этот сценарий будет собирать 99%данных для RU и COM в определенной степени. В остальном желательно прочитать документацию и задержать задержки или подключить прокси.

Кроме того, я отмечаю, что если в списке доменов есть поддомены для проверки, информация, которая будет возвращена и записана для основного поля.

Я надеюсь, что статья была полезна.

Масса Ушик в телеграмме.

Что вы используете, чтобы проверить Whois? Напишите в комментарии.

Source