Настоятельнопрошу обратить внимание!!!
Как известно, поисковая система выдает очень много дублей доменов в выдаче, для этого вы и сделали функции удаления дублей строк и удаление дублей доменов. Однако, ситуация!!
Есть у нас файл со свежеспарсенной базой с яндекса.
В нем примерно такое содержание:
- Код: выделить все
http://www.daad.ru/
http://www.daad.ru/forum/
http://www.daad.ru/forum/profile.php?mode=viewprofile&u=3
И если удалить дубли доменов, то останется первый, то есть http://www.daad.ru/, который в последующей проверке на типы ресурсов не определится как phpbb, т.к. урл будет вести на сам сайт, а не на форум.
И таким образом мы теряем(я проверил) очень приличное количество форумов, которые мы уже спарсили, но как оказывается сами выбросили у себя из-под носа.
Вариантов исправить сию ужасную проблему вижу 2:
- Сам когда то писал программу, тоже с удалением дублей доменов, в общем после сортировки по алфавиту, вам необходимо анализировать регуляркой доменное имя и если находится такое же, но с более длинным хвостом ссылки - заменять им уже имеющееся уникальное в базе. Но не сказать чтобы это быстро очень работало, может вы оптимизируете. То есть для каждого из уникальных доменов мы находим самое длинное его упоминание в виде ссылки и его оставляем в выходном файле.
- Если ссылки в файле будут расположены в порядке уменьшения длины:
- Код: выделить все
http://www.daad.ru/forum/profile.php?mode=viewprofile&u=3
http://www.daad.ru/forum/
http://www.daad.ru/
То ксеон оставляет единственной - верхнюю, т.е. самую длинную. Но есть подозрения, что такой принцип не будет работать во всех возможных ситуациях, т.к. придется при пробеге regex'om делать 2 сортировки - по алфавиту(из-за скорости поиска) и далее по длинне, что может привести к конфликту этих 2х методов(порядок длинн нарушит порядок алфавита) и мы опять потеряем так нужные нам лишние форумы.
Спасибо.