Как определить размер статьи на неизвестном сайте?

12 3
Devvver
На сайте с 02.07.2008
Offline
662
2350

Есть софт который получает топ 10 выдачи поисковой системы. Имеем 10 юрлов - статей.

Как определить размер статьи автоматически?

Теоретически:

1) Спарсить статью через RSS (если есть)

2) Поискать микроразметку (blogposting или Article)

3) Считать что h1 - это начало, но как определить конец? Искать надпись типа "добавить комментарий или комментарии"

Ситуация осложняется разными cms и непониманием определить основной контент.

Может кто реализовывал подобное на любом языке программирования - куда хоть копать?

Мой блог. Все о создании сайтов,Seo и СДЛ ( https://devvver.ru/ ) Мой SEO телеграм канал https://t.me/seobloggers
BLIKSSS
На сайте с 11.04.2013
Offline
84
#1
Devvver:
Есть софт который получает топ 10 выдачи поисковой системы. Имеем 10 юрлов - статей.
Как определить размер статьи автоматически?

Софт X-Parser-Light?

В нем есть настройка минимальный и максимальный размер.

Может он подойдет.

WP_Expert
На сайте с 19.11.2018
Offline
15
#2

Devvver, по числу абзацев можно ☝

⭐ Создание лендингов и многостраничных сайтов на WordPress ⭐ Любые работы по Wordpress - написать (https://t.me/wpexpert) ⭐ Сайты под Adsense на заказ
webiumpro
На сайте с 20.03.2017
Offline
39
#3

Можно попробовать реализовать анализатор, который будет определять контентную часть. Алгоритм примерно такой:

1. Спарсить вместе с целевой статьей еще несколько других

2. Сравнить html (с помощью h1) и оставить только уникальный контент. Все, что ниже контента статьи, как правило, будет повторяться

3. Определить прямого родителя (контейнер содержимого статьи), чтобы вытащить контент.

Этот подход довольно сложный и ресурсоемкий, но я думаю, погрешность будет ниже, чем у других способов.

Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
Devvver
На сайте с 02.07.2008
Offline
662
#4
WP_Expert:
по числу абзацев можно

конкретнее?

BLIKSSS:
Софт X-Parser-Light?

Я ж написал что свой софт пишу. Мне бы понять алгоритм.

webiumpro:
Все, что ниже контента статьи, как правило, будет повторяться

Так теги вообще повторяющиеся будут. Вашу мысль я понял, искать какие то повторяющиеся элементы - типа автора или кнопок поделиться или звездочек. Но такое начать определять - тут нейросеть надо писать и обучать на выборке. Сложновато.

webiumpro
На сайте с 20.03.2017
Offline
39
#5
Devvver:
Так теги вообще повторяющиеся будут.

Не просто теги, а их содержимое и атрибуты

Devvver:
Но такое начать определять - тут нейросеть надо писать и обучать на выборке

Вполне будет достаточно html-crawler'a и регулярок. Не так много критериев и их комбинаций нужно проверить, чтобы понять, что какая-то часть кода есть и на других страницах, а какая-то - уникальна. Погрешность безусловно будет, но со временем ее можно минимизировать, добавляя новые критерии проверки

Devvver
На сайте с 02.07.2008
Offline
662
#6
webiumpro:
Вполне будет достаточно html-crawler'a и регулярок.

Понятно. Почитал ответы программистов на Тостере и понял что задача нереализуемая, только гадания. Эта проблема уровня поисковиков.

webiumpro
На сайте с 20.03.2017
Offline
39
#7

Вы можете найти родителя h1. Значит все, что выше этого родительского контейнера, уже можно отбросить, останется только тело статьи со всякими служебными элементами, которые, в принципе, тоже реально вычислить.

Вы заинтересовали меня этой задачей. Давайте спишемся в личке и проведем эксперимент. Вы мне дадите для теста несколько сайтов, а я попробую реализовать этот алгоритм на php и вычленить контент. Я не возьму за это ни копейки, просто задача реально очень интересная.

_
На сайте с 24.03.2008
Offline
381
#8

Выкидываете все тэги... всё остальное текст

M
На сайте с 20.07.2008
Offline
86
#9
Devvver:
Есть софт который получает топ 10 выдачи поисковой системы. Имеем 10 юрлов - статей.
Как определить размер статьи автоматически?

Не совсем понятно, что означает термин "размер статьи". Возможно это подойдет под вашу задачу https://github.com/grangier/python-goose

T7
На сайте с 19.09.2018
Offline
63
#10
webiumpro:
Вы можете найти родителя h1.

А если нет H1?

У меня, что то более менее приемлемое получалось при комбинации 2-х идей.

1. Абзац, это как минимум 2 пассажа, в каждом из которых (мин 2(3?)) слова или один как минимум из 2-3-х. Варианты:)

2. Ищем блочный элемент (р/див и т.д.), где других блочных элементов нет и это пассаж по п1.

Парент элемент в котором больше всего п.2 - статья.

Но часто попадают анонсы других статей ( "вам может понравиться"), комментарии и т.п. шлак

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий