Как получить с html страницы название организации, не заходя вручную?

У большинства сайтов в шапке или в футере часто находится их название.

Какой алгоритм можно использовать, чтобы найти повторяющиеся значения и попытаться из них получить данные о названии?

Например, есть адрес

http://habrahabr.ru/

Нужно найти название организации. Вручную алгоритм следующий. Смотрим шапку, смотрим футер, если не находим переходим на страницу контакты или о сайте

Результатом будет названия: Хабрахабр Компания "ТМ"

Как не переходя на сайт вручную получить подобные данные?

Хотелось бы понять алгоритм

  • Вопрос задан
  • 3474 просмотра
Решения вопроса 1

Я бы, наверное, сперва попробовал выделить обвязку страниц. Т. е. взять несколько страниц сайта и определить на них повторяющийся текст. А дальше уже эмпирически подбирать правила для разбора получившегося. Например, часто название компании идет после или перед ©, часто оно упоминается в тайтле, часто перед ним идут слова "компания", "ООО" и т. п.

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6

Например, с помощью регулярных выражений.

Ответ написан
vacuumn
@vacuumn

Нужно парсить HTML, но только не делай это через регулярные выражения. Каждый раз когда ты парсишь HTML регулярками — в мире умирает один разработчик.

Для Хабра, например футер легко найти, у него логичный id:

<div id="footer">

Дальше ты берешь весь текст из футера и ищешь там название компании и ссылки на страницу "Контакты". 

У других сайтов футер или хедер найти будет тяжелее. Нужно будет проанализировать несколько десятков сайтов и составить список правил, по котором можно будет легко найти в коде страницы блоки с нужными елементами.</div>

Ответ написан
@ChemAli

Единого алгоритма нет, так как нет единого стандарта описания организаций на сайтах.

Чтобы не переходить вручную нужно переходить программно. Для этого пишутся (или используются универсальные) программы-парсеры.

Если будете писать сами, то алгоритм нужно будет делать многошаговый и многовариантный.

В идеальном мире на идеальных сайтах присутствует микроразметка hCard, из которой можно извлечь название организации и другие данные о ней, заботливо предоставленные хозяевами сайта.

Все остальные варианты лучше сразу обработать вручную, так как их слишком много :)

Ответ написан
@VeMax

Так же можно попробовать найти, к примеру img с классом logo и посмотреть у него alt или title. Как дополнительный вариант для проверки пойдет.

Ответ написан
@ChemAli

Название самого проекта — мета-теги (опять же, если правильно заполнены).

Еще можно посмотреть whois домена — вроде еще не везде закрывают данные владельца.

Ответ написан
Комментировать

Вопросов крайне много, ровным счетом как и неопределенности. А если на странице будет несколько названий организаций. Как сформулирована у Вас задача? Вам надо собрать все названия со указанных страниц или Вам надо установить принадлежность сайта к компании?

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы