[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как можно реализовать такой парсинг?
seowin
Доброго времени суток!

Возникла необходимость написать своеобразный шаблонизатор для одной CMS на основе существующих страниц.

Суть идеи:
1. Указываем скрипту ссылку на страницу существующего сайта, на основе которой нужно сделать шаблон
2. Скрипт обрабатывает эту страницу следующим образом:
- Удаляет весь контент (текст, картинки, таблицы и т.п.)
- Заместо этого контента вставляет макрос (к примеру: [TEXT])
- Заменяет все ссылки на макрос (к примеру, на [LINK])
- Заменяет мета-теги (title, description)
- Подключаемые файлы (css, js и прочее) не трогает, пути остаются такими же.

Проблема в том, как определить, в каком именно месте выводить макрос [TEXT]. Так как текст на странице может выводиться и в футере, и в сайдбаре.
Нужно как-то определить место, где выводится основной контент страницы, и заместо него вставить этот макрос.

Также сложность возникает в удалении картинок. Могут быть картинки из контента, а могут быть те, которые прописаны в шаблоне (элемет дизайна).

Помогите, пожалуйста, придумать алгоритм.
Игорь_Vasinsky
можно же указать в настройках парсера - элемент в котором контент, заголовок, футер и т.д.

не вижу проблем

картинки удалить из контента не беда.

остальные прописаны в CSS - это элемент шаблона - зачем из трогать?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
seowin
Цитата (Игорь_Vasinsky @ 12.11.2015 - 18:59)
можно же указать в настройках парсера - элемент в котором контент, заголовок, футер и т.д.

не вижу проблем

картинки удалить из контента не беда.

остальные прописаны в CSS - это элемент шаблона - зачем из трогать?

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

Не всегда бывает, что картинки прописаны в CSS. Иногда они могут быть прописаны прямо в шаблоне
GET
seowin

Мне кажется только ручками сначала анализировать страничку, ориентироваться на классы, где картинка явно прописывается, а где через стили, тоже самое с текстом, хотя легче, а потом уже через, например, simple html dom все это рассортировывать и подменять. Недавно писал такой парсер, но было легче т.к. цель была конкретный контент и конкретные картинки привязанные к классам.

Мне казалось, что я разминировою страницу, особенно когда разбирался, как они прячут на странице скрытый контент в разных местах через base64 smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Игорь_Vasinsky
Цитата
Хотелось бы минимум телодвижений при парсинге.


универсальный парсер ? laugh.gif ну-ну.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ron
Парсинг вообще дело довольно непростое. Даже целевого ресурса. А универсальный парсер на грани невозможного. Как в одном известном ролике "это не то, чтобы невозможно... Но близко к этому..." ))))) Там где линии рисовали, может кто помнит. )))

Особенно если аяксом чего-то подгружается, то можно застрять на долгие и утомительные часы, а то и дни.

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

Приходит на ум только следующее: вычислять текст на странице и удалять предложения, которые длиннее N слов (символов).

Только вот как праивльно вставить макрос с выводом текста, не понимаю..
Игорь_Vasinsky
seowin
ну ты хернёй занимаешься.

я тебе вариант предложил - предложил.

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

один хер шаблон будешь изучать.

Цитата
Только вот как праивльно вставить макрос с выводом текста, не понимаю..


здрасти, приехали.

ты парсеры то писал?

про регулярные выражения слышал? или только Simple HTML DOM и прочая гадость в твоём арсенале?

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

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.