L0k1
@L0k1

Как найти на странице сайта область с полезным контентом?

Суть задачи - поиск неких слов на страничках сайта. Поиском будет заниматься расширение для браузера.
Проблема: как определить, что я ищу слово не по всему документу, а именно по полезной ее части?

Например можно было бы сходу выбросить из поиска теги, аля aside, nav... может даже header и footer - хотя в них тоже может быть полезная инфа, например в хедере будет заголовок статьи. Искать по всему body? - тогда я буду находить текст и в рекламных блоках, что не есть гуд

кто-нибудь уже решал данную задачу?
  • Вопрос задан
  • 317 просмотров
Пригласить эксперта
Ответы на вопрос 4
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Данный вопрос разбирался на тостере неоднократно, сам писал ответы. Ищите по ресурсу.
Ответ написан
@Gregpopov
Full stack web developer
Задача сама по себе немного двояко непроста:
1. По стандартам верстают не все
2. Нужно конкретно смотреть на структуру разбираемого ресурса
Ответ написан
Если речь идет о вообще любом ресурсе и любых данных по какому-то образцу, то проблем тут куча. Верстают-то все, как кому удобно.
Я год назад писал парсер для выдергивания мейлов и телефонов, так лучший результат - 56%. То есть из 100 страниц я получал 56 контактов. И это для заранее известных форматов, для которых можно прописать регулярку...
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
ну, если кратко: это задача поиска ОСНОВНОГО контента страницы.
1. Удаляем все контейнеры (кроме тэгов разметки текста), с количеством дочерних элементов превышающих 1.
2. Чистим контейнер body от всех тегов, кроме тегов-контейнеров (div,td)
3. Находим контейнер (div,td) с самым длинным текстом.
4. Смело его грабим.

Пример.
Было:
<div1>
  <div2>
   <a href="/1/">link1</a>
   <a href="/2/">link2</a>
  </div>
  <div3>
    <span contetnt>
         some text
      <p>
        <i>more text</i>
       </p>
    </span contetnt>
  </div3>
</div1>

Стало:
<div3>
  some text
  more text
</div3>
Ответ написан
Ваш ответ на вопрос

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

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