DMOZ — это огромный открытый каталог сайтов. Но мало кто знает что DMOZ можно скачать(!) себе на компьютер и использовать как заблагорассудится (разумеется, соблюдая лицензию).

Скачать DMOZ можно на этой странице (файл content.rdf.u8.gz). В сжатом виде на данный момент он весит 277 МБ. После распаковки — 1,8 Гб. Однако кроме ссылок в этом файле находится много другой информации о структуре их размещения. Отделим ссылки от неё.

Кладем распакованный файл в какую-нибудь папку на вашем веб-сервере и создаем там же php-файл, в который пишем следующий код:

<?php
  // Не прерывать скрипт в течение часа
  set_time_limit(3600);
  // Открываем распакованный файл на чтение
  if($f = fopen('content.rdf.u8','r')){
    // Создаем файл для ссылок
    if($w = fopen('links.txt','w')){
      while(!feof($f)) {
        $line = fgets($f,4096);
        if(preg_match('/<links*r:resource="(.+?)"s*>/',$line,$out)){
          fwrite($w,$out[1] . "n");
        }
      }
      fclose($w);
    }
    fclose($f);
  }
?>

У меня данный скрипт справился со своей задачей примерно за 5 минут и сгенерировал список из 4,154,693 ссылок. Что теперь делать с этими ссылками — решайте сами. А зачем они понадобились мне — расскажу в одной из следующих статей. Если всё получится. Всё получилось!

Полезные сылки:
Инструменты для использования базы DMOZ на своих проектах.