4seo
August 8, 2021

Массовая проверка доменов на занятость и автоматическая регистрация

import re
import requests
import time


f = open('1.txt')
domain_name = f.readline()
api_key = "6ac329b820cbaa7ac52a6"
count = 0

with open("registered_domains.txt", "w", encoding='utf-8') as registered_domains:
    pass
with open("expensive_domains.txt", "w", encoding='utf-8') as expensive_domains:
    pass



def registered_or_expensive(file_write_name, file_delete_name, price, answer):
    with open(file_write_name, "a") as file:
        file.write(f'{domain_name} {price} {str(domain_price)}\n')
    print(answer)

    with open(file_delete_name, "r+") as my_file:
        new_f = my_file.readlines()
        my_file.seek(0)
        for line in new_f:
            if domain_name not in line:
                my_file.write(line)
        my_file.truncate()


while count < 100:
    time.sleep(10)
    if len(domain_name) < 1:
        f.close()
        f = open('1.txt')
        domain_name = f.readline()
        count += 1
        if len(domain_name) < 1:
            f.close()
            print("Файл пустой")
            break
    else:
        domain_name = re.sub("^\s+|\n|\r|\s+quot;, '', domain_name)
        # print(domain_name)
        response_url = f'https://www.namesilo.com/api/checkRegisterAvailability \
        ?version=1&type=xml&key={api_key}&domains={domain_name}'
        response = requests.post(response_url).text
        a = response.split()

        try:
            if "unavailable" in a[2]:
                print(f"Домен {domain_name} занят")
            elif "available" in a[2]:
                print("Домен свободен")
                domain_price = float(re.sub(r'[^0-9.]+', r'', str(a[3])))
                print(domain_name, domain_price)
                if domain_price < 10:
                    print("Пробую купить доменное имя")
                    print(f'Домен стоит: {str(domain_price)} USD')
                    # покупка
                    buydomain = requests.post(f"https://www.namesilo.com/api/ \
                    registerDomain?version=1&type=xml&key={api_key}&domain={str \
                    (domain_name)}&years=1&private=1&auto_renew=1/?rid=d3b8778js")
                    print(buydomain.text)
                    no_money_answer = "Sorry, you do not have enough available \
                    NameSilo account funds for this transaction."
                    success_answer = "Your domain registration was successfully
                    \processed."
                    if no_money_answer in buydomain.text:
                        print("Покупка не удалась, пополните свой балланс")
                    elif success_answer in buydomain.text:
                        registered_or_expensive("registered_domains.txt", \
                        "1.txt", "куплен по цене", "Домен зарегистрирован и
                        \сохранен в файл registered_domains.txt")
                    else:
                        print("Регистрация неуспешна")


                else:
                    print(f'Домен стоит дороже: {str(domain_price)} USD')
                    registered_or_expensive("expensive_domains.txt", "1.txt", \
                    "стоит", "Домен перемешен в файл expensive_domains.txt")

        except:
            print("Неизвестная ошибка")
        finally:
            print("______________________________")
            domain_name = f.readline()
f.close()

Данный код взят на сайте - https://4python.pythonanywhere.com/checker4registration.html