Парсер контента

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Отзывы

#46 25 ноября 2016 в 11:17

Очень классный компонент! давно такой искал, все работает как часики)тех поддержка очень быстрая это радует

@decoy
С открытой регистрацией теперь таких "положительных" моментов станет больше )
#47 25 ноября 2016 в 14:55

С открытой регистрацией теперь таких "положительных" моментов станет больше )

rookee

Это намек на накрутку? Вы думаете человеку, оставившему комментарий понравилось ваше высказывание?

Иллюстрация

Я бы на вашем месте извинился перед человеком.))))
#48 25 ноября 2016 в 21:18

Это намек на накрутку? Вы думаете человеку, оставившему комментарий понравилось ваше высказывание?

dwd
Что вы. Просто теперь пользователям проще загеристироваться и оставить отзыв. Чуть что сразу негатив…
#49 30 ноября 2016 в 06:28
Скажите, может ли он авторизироваться на сайте и после этого спарсить нужный контент? Те же социалки, например фэйсбук. Судя по сообщениям выше скорее да чем нет, если да то не могли бы вы описать в документации данный момент. Спасибо.
Еще момент, не планируется ли интегрировать компонент с другими компонентами/сервисами перечисленными вами выше, например пинг поисковых систем после публикации, постинг в соц-сети, автоперевод контента.
Тремя словами "все из коробки".
Спасибо.
Зы: еще интересует редирект, через тот же гоо.гл :)
#50 30 ноября 2016 в 22:32

Скажите, может ли он авторизироваться на сайте и после этого спарсить нужный контент? Те же социалки, например фэйсбук. Судя по сообщениям выше скорее да чем нет, если да то не могли бы вы описать в документации данный момент. Спасибо.
Еще момент, не планируется ли интегрировать компонент с другими компонентами/сервисами перечисленными вами выше, например пинг поисковых систем после публикации, постинг в соц-сети, автоперевод контента.
Тремя словами "все из коробки".
Спасибо.
Зы: еще интересует редирект, через тот же гоо.гл :)

Василич

Получение страниц с сайтов источников в парсере производится при помощи библиотеки cURL, которая позволяет вам указывать множество параметров подключения, в том числе и произвести авторизацию на сайте перед загрузкой страницы. Вы сами можете определять настройки cURL для любого сайта, страницы, маски страниц. Вот вам несколько статей про авторизацию на сайтах при помощи cURL — статья 1, статья 2. Поскольку для каждого сайта настройки cURL будут разными то получить данный функционал "из коробки" не представляется возможным, но у вас есть все необходимое для реализации вашей задачи.

По поводу интеграции ситуация практически аналогична — существует множество подобных компонентов и интегрировать все(приобрести чтобы изучить их код) я не вижу смысла. Давайте представим, что нам нужно перевести контент после публикации на сайте при помощи компонента "Мультиязычность". В интерфейсе компонента есть кнопочка "Авто-перевод от Яндекса". Когда вы на нее нажимаете получаете переведенный Яндексом контент и если перевод вас устраивает жмете кнопку сохранить. Что происходит в это время? Вызывается 2 функции — условно назовем их перевестиКонтент() и сохранить контент(); Ну и попробуем перевести нашу опубликованную статью $article:

<?php
$model = cmsCore::getModel('multilang');
$ article_english['заголовок'] = $model->перевестиКонтент($ article['заголовок']);
$ article_english['текст_статьи'] = $model->перевестиКонтент($ article['текст_статьи']);
$model->сохранить контент($article_english);
?>

Вот вам и вся интеграция. 4-5 строк кода будет достаточно для интеграции с большинством компонентов, а некоторым хватит и двух строк.

P.S. Код написан исключительно с целью продемонстрировать простоту интеграции и должен выразить общую суть процесса.
#51 20 ноября 2017 в 12:26
dwd, доброго дня!
Ещё раз благодарю за отличный, грамотный компонент! Установил — настроил — радуюсь! Но возникло пару насущных вопросов:

1. Теги. Имею в виду теги статьи (например: новости, спорт, российские). Очень нужно и у нас востребовано. Вопрос: как их автоматизировать, а не вводить вручную?

2. Источник материала (далее ИМ). У меня ИМ настроен следующим образом:

Ваш компонент вставляет соответственно ссылку вида <a href="http://сайт.ру">название</a> и она именно так и отображается: Источник: <a href="http://сайт.ру">название</a>. Как можно исправить, чтобы парсер вставлял в поле "правильно": сайт.ру|название?

3. Как заставить определять ссылки по маске, например через регулярные выражения? Столкнулся с тем, что на сайтах ссылки на категории материалов частично совпадают с ссылками на сами материалы, например
  1. http://site.ru/category/ - ссылка на категорию
  2. http://site.ru/category/38291.html - ссылка на материал
Как сделать, чтобы остались только ссылки на материал? Заметил, что при наличии ссылок на категории в задании, парсинг заметно грузит систему! Было бы правильнее сделать белый список с возможностью ввода регулярными выражениями.
#52 21 ноября 2017 в 11:38
Ещё найден баг!
Если ссылка генерится через свой шаблон, например

Шаблон генерации URL:
/news/{date_add}-{title}.html

То после публикации материала, ссылка принимает вид: нттр://site.ru/news/date-add-nazvanie-novosti.html
#53 22 декабря 2017 в 20:06
Мне кажется вы ошиблись темой и говорите совершенно про другой компонент. Очевидно вы имеете в виду этот компонент? — instantcms.ru/addons/news-parser-for-instantcms.html
Данная же тема посвящена этому компоненту — instantcms.ru/addons/parser.html
#54 22 декабря 2017 в 20:31
dwd, ну что вы, всё верно. Компонент приобретал у вас и он почти отлично работает на живом проекте. Но за время после покупки был найден ряд багов, о которых хотелось бы рассказать и получить исправления.

Ещё пару неприятных багов:
1. Первый баг я описал выше.
2. Если в заголовок или анонс парсируемого контента попадет "мусор", например & # 0 3 9; & q u o t; & r s q u o ; и т.д., то в таком виде он и остаётся в контенте. Например, название новости имеет вид
  1. &quot;Здравствуйте товарищи&quot; - поздаровался Василий Иванович.
Хотелось бы, чтобы "Удаление мусора" из закладки "Текст статьи" применялось и к заголовку, и к анонсу.
3. Если изменить название спарсированного контента, то парсер парсирует его повторно и появляются дубли. Хотелось, чтобы парсер сохранял ссылки в базе которые он уже парсировал.
4. Иногда крайне непонятна система настройки стратегии парсинга. Например, парсирую текст статьи, например, из некого div'a, причём он с таким классом/id один на странице, указываю название его класса, как в вашем видео и "тестер стратегий" возвращает "пустоту". Если указываю его через "Начало/Конец искомого текста", то всё обычно нормально. Хотя иногда (но очень редко) срабатывает и через указание class/id — закономерности не выявил.
5. В "Удалении мусора" оооочень не хватает регулярных выражений!
#55 22 декабря 2017 в 21:06
1. Что значит правильно? Они и так правильно вставляются. Просто для их вывода надо использовать тип поля HTML-текст. Вы же судя по написанному пытаетесь поместить ссылку в строковое поле. На момент написания компонента строковое поле вообще не умело показывать ссылки.
2. Это не баг, а текст, полученный с сайта-источника. Существуют десятки кодировок и тысячи html-сущностей, предусмотреть автозамену их всех практически невозможно. В компоненте заложена автозамена ряда сущностей, но если вам ее оказалось недостаточно и попались сущности, которые автоматически не заменяются компонентом, то удаление мусора из заголовков осуществляется в файле postprocess.php, для этого достаточно добавить в него строку типа
  1. $article['title'] = str_replace('что_заменить', 'чем_заменить', $article['title']);
, в базовой версии парсера это делается так. Нет желания делать подобные вещи в коде? — instantcms.ru/addons/parser-extended.html — пакет, значительно расширяющий возможности компонента. В нем все поля имеют функциии замены, очистки и т.д.

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

Пакет расширения для компонента «Парсер контента»
3. Этого не может быть. Парсер определяет дублирование по ссылкам, а не по названию. Не удаляйте в интерфейсе парсера скачанные материалы чтобы парсер не качал их повторно.
4. все инструменты парсера работают правильно и возвращают именно то, что должны возвращать. инструменты Тег и Класс предназначены для выборки содержимого коротких или уникальных тегов, а инструмент Начало/Конец искомого текста для простыней контента и случаев когда выборка по тегу или классу невозможна. комбинируя эти инструменты вы моете вытащить со страницы все что угодно. Лично мне пока не попадались сайты где этого б не удавалось сделать.
5. Парсер изначально писался для тех, кто любит простоту использования и ценит свое время. Именно поэтому в нем нет регулярных выражений, DOM-структур и прочих практически никому не понятных вещей. И честно говоря я в них тоже особого смысла не вижу.
Вроде как ответил на все вопросы…
#56 25 декабря 2017 в 14:18
Тогда остались следующие вопросы:
1.

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

  1. http://site.ru/category/ - ссылка на категорию
  2. http://site.ru/category/38291.html - ссылка на материал
Как сделать, чтобы остались только ссылки на материал?

ParadoX
2.

Если ссылка генерится через свой шаблон, например

  1. Шаблон генерации URL:
  2. /news/{date_add}-{title}.html
То после публикации материала, ссылка принимает вид: нттр://site.ru/news/date-add-nazvanie-novosti.html

ParadoX
3. А так же в "Удалении мусора" и в п.1. оооочень не хватает регулярных выражений!
#57 25 декабря 2017 в 15:17
1. В белый список добавляем .html и получаем только нужные записи. Этот случай как и ряд других описан в документации.
2. Это пожалуй вопрос не ко мне, а к разработчикам инстанта. Парсер передает компоненту Контент точно такую же форму, как если бы вы заполнили ее вручную.
По поводу регулярных выражений — в большинстве случаев просто не хватает просмотра обучающего видео, в 99% остальных случаев — элементарной смекалки. Я не встречал еще ни одного случая, где столкнулся бы с ситуацией невозможности убрать то, что мне не нужно. Ну а даже если такой случай и встретится — я никому не давал гарантии, что всегда и везде можно все что угодно. Парсер это мощный инструмент, а не волшебная палочка.
#58 9 мая 2018 в 22:31
Приветствую ребята и с Праздником Победы всех! Очередной раз просматривал форум и наткнулся на свою тему, которую я создавал, по причине большого внимания к данному парсеру. Думаю тему можно закрывать, теперь уже точно понятно с данным парсером и конкретно с разработчиком. А уж сколько уже было выпущено других качественных компонентов этим разработчиком и не счесть(его блог).
Рекомендую данного разработчика как грамотного, порядочного и доброжелательного человека.
p.s. Парсер конечно же я купил и очень рад этому, да и дополнение к нему тоже.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.