FDE Grabber 4.4 уже доступен

Дорогие друзья! Сообщаем о том, что вышла новая версия системы импорта новостей FDE Grabber 4.4 Нужно сказать, что с этой версии в граббере начинается новая веха в истории FDE Grabber. Было сделано немало изменений в плане улучшения производительности, но и реализовано множество новых идей… Обо всём по порядку, начнём с мелочей:
  • В настройках категории добавлена возможность указания минимального необходимого количества в статье картинок. Если количество картинок в статье  меньше указанной величины, то статья будет удалена и не будет импортирована
  • Добавлена возможность бесшаблонного парсинга новостей (статей). Это означает, что теперь в большинстве случаев можно получать полезный контент полного содержимого статьи вообще не составляя никакого шаблона
  • Добавлена возможность DOM парсинга как содержимого статей так и источников.
  • Добавлена возможность DOM замен, наряду с обычными заменами и заменами, с помощью регулярных выражений
А теперь непосредственно о самом главном, о DOM парсинге и о преимуществах, которые мы получаем, используя DOM шаблоны DOM – это аббревиатура от английскогоDocument Object Model”, что переводится на русский, как “Объектная Модель Документа”. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями “родительский-дочерний”. Иными словами, система импорта новостей FDE Grabber теперь умеет построить из HTML кода документа иерархическое DOM дерево, состоящее из узлов, связанных между собой отношениями родитель-дочерний элемент. При этом технология DOM парсинга разработана нами самостоятельно, в стенах компании FDSTAR и не основывается ни на каких-либо чужих разработках. Как работает DOM парсинг на примере разбора содержимого статьи:
  • указывается DOM шаблон
  • FDE Grabber преобразует документ в иерархическое  DOM дерево
  • начинается поиск по указанному DOM шаблону необходимого нам элемента  и в случае его нахождения мы получим полезный контент
Как выглядит DOM шаблон В DOM шаблоне указываются DOM элементы (узлы)  в виде иерархической последовательности (как и в CSS стилях или, например jquery). Рассмотрим пример. Пусть, полезный контент содержится в документе, который выглядит следующим образом:
<body>
	<div>
		<table>
			<tr>
				<td>
					<div class="content">
полезное содержимое,
которое мы должны получить
					</div>
				</td>
			</tr>
		</table>
	</div>
</body>
Тогда мы можем выстроить некоторый шаблон, который будет выглядеть, например так: body div table div.content Последовательность body div table div.content означает, что мы ищем элемент div со стилевым классом “content“, который является дочерним по отношению к table, а table в свою очередь дочерним, по отношению к div, а div к body. Допускается указание идентификаторов, в виде div#id, где div - это элемент с идентификатором “id“. Кроме того, допускается указание любой общности элементов в виде “*”. Конструкция вида *.content означает любой элемент со стилевым классом “content” Ну хорошо, скажете вы, но это не позволяет распознать контент в большинстве сайтов, работающих на популярном движке DLE. Контент там находится, обычно в блочных элементах с уникальным идентификатором, вида news-id-555555 ДА! Именно поэтому мы сделали возможность указания дополнительного сопоставления атрибутов Например, id {preg} #content_\d+#i – это сопоставление значения атрибута id с указанным регулярным выражением #content_\d+#i. width {like} 100 – это сопоставление значения атрибута width со строковым значением “100” (не регулярное выражениие). Как несложно догадаться, для всех сайтов, работающих на DLE унас будет всего один универсальный шаблон: id {preg} #news\-id\-\d+#is Кроме поиска, по такой же схеме мы сделали возможность указания DOM замен. При этом можно заменить любой DOM элемент на указанную замену. Парсить с помощью DOM шаблонов в FDE Grabber можно не только полное содержимое статей, но и источники. Итоги Как мы видим, теперь имеется возможность ещё более удобного указания шаблонов для парсинга и время на реализацию новых идей!