Архив метки: список доменов

Скачать список доменов в зоне .ru

В доменной зоне .ru находится примерно 5 000 000 зарегистрированных доменов. Если учитывать домены третьего уровня, то эта цифра увеличивается примерно до восьми миллионов. Файл для скачивания представлят собой .txt файл в архиве, в нём находится примерно 1 000 000 доменов актуальных на май 2019. Думаю миллиона вполне хватит для проверки статистических гипотез, которые возникают в ходе исследовательских задач. (ссылка на скачиване находится чуть ниже)

Так же для интереса приведу данные по количеству доменов в других расспространённых зонах, а всего в мире зарегистрировано порядка 400 000 000 доменов.
зона .com 150 миллионов
зона .net 14 миллионов
зона .org 11 миллионов
зона .info 7 миллионов
зона .uk 12 миллионов
зона .de 5 миллионов

Как быстро получить информацию со всех сайтов, указанных в базе доменов? Для этого воспользуемся python скриптом. Обходить все домены лучше всего не поочереди, а асинхронно или в несколько потоков, т.к. задержки, возникающие при запросе будут тормозить следующий запрос и накапливаться, а это нам не к чему. Самый быстрый и мощный вариан asyncio, однако уровень вхождения в библиотеку чуть выше среднего, поэтому ниже показан самый простой вариант как быстро обойти все домены. С помощью данного скрипта можно обойти миллион доменов из списка за 3-4 часа. В качестве информации, которую будем брать с сайтов, давайте возьмем данные о IP адресе, где расположен хостинг.

скрипт на python для парсинга инфорамации о сайтах из базы доменов на примере ip:

import socket
# с помощью multiprocessing сможем обходить сайты не последовательно
from multiprocessing.dummy import Pool as ThreadPool
import dns.resolver
import pandas as pd

# определим функцию для получения IP адреса
def get_ip(url):
    try:
        data_ip = socket.gethostbyname(url)
    except:
        return None
    return data_ip


df_all_ru = pd.read_csv('all_ru.csv')
sites_list = df_all_ru['domain_name'].tolist()

# за раз давайте будем брать сразу 100 доменов
# имеет смысл подобрать этот параметр в зависимости от скорости вашего интернета и задачи которую решаете
p = ThreadPool(100)
result_ip = p.map(get_ip, sites_list)
p.close()
p.join()

df_all_ru['ip'] = result_ip
df_all_ru.to_csv('ru_domains_ips.csv', index=False)

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

Непосредственно скачать файл со списком ру доменов здесь