Многопоточный парсер внешних ссылок с сайтов
Здравствуйте.
Требуется приложение на PHP+mysql - многопоточный парсер внешних ссылок с сайтов.
Структура:
1. Админ.часть
- настройка скорости сканирования (количество потоков)
- настройка глубины сканирования (количество кликов от главной страницы)
- загрузка txt файла со списком урлов (хосты или полный адрес)
- загрузка списка урлов через форму
- индикация состояния сканирования (количество хостов в очереди, кол-во готовых хостов, общая статистика, по желанию трафик)
- блокировка хостов (черный список сканирования)
2.Парсер
- многопоточность
- приблизительная структура бд: id, host, datetime последнего сканирования, url страницы, sum_links количество на странице, anchors анкоры ссылок в формате url_acceptor::anchor;;url_acceptor::anchor, status ответ сервера (0 - ожидание), level количество кликов от главной (0,1,2 и т.п.), error код ошибки
- предположительный размер БД 10-20млн. страниц (или 50-100 тыс. хостов)
- последовательность сканирования страниц должна быть случайной, то есть страницы сканируются не сразу для всего хоста, а берутся из бд вразнобой, сначала главные страницы, потом по одной второго уровня, затем случайные страницы третьего уровня разных хостов и т.п.
- внешними ссылками считать не закрытые от поисковых систем тегами noindex и nofollow
- подмена юзер-агента, реферера
- возможность работать через прокси (админ часть)
3.Пользовательский интерфейс
- обращение через GET запрос - ?host=site.ru
вывод суммы полей sum_links , где host=$_GET[host] , естественно с защитой от инъекций.
- обращение через GET запрос - ?host=site.ru&mode=view
вывод списка всех ссылок с хоста: url_acceptor - anchor
Бюджет неизвестен, предпочтение будет отдаваться при наличии уже действующего аналога или при предложении дополнительных возможностей или особого быстродействия.