Универсальный парсер

Статус
В этой теме нельзя размещать новые ответы.
Есть такая штука, htmltidy.
Она идет и как расширение php, и как отдельный бинарник.
Лежит на tidy.sourceforge.net.
Так вот.

Прогоняешь любой html через нее - и получаешь на выходе валидный xhtml, который 100% распарсивается в DOM, и который просто ФАНТАСТИЧЕСКИ удобно дергать через xpath. Кто хоть раз пробовал - обратно на регекспы не перейдут ни за какие коврижки! :)


А по теме, насчет универсального парсера - я бы копал в двух направлениях:

1) Сравнивание разных страниц сайта (можно даже "в лоб", через strcmp()), нахождение у них общих кусков, удаление этих кусков.

2) поиск длинных абзацев текста. Выбираем теги, которые могут встретиться в статье (<a>, <p>, <img>, <br>, ...) и теги, которые гарантированно не могут (</td>, </table> ..).
Дальше шуруем по коду страницы и ищем самый большой участок, в котором среди текста встречаются только разрешенные теги.

Короче полет для фантазии тут большой. Обычно все-таки намного проще решать частные случаи и добавлять шаблоны по мере надобности.
 
Копай в сторону НОЧНОЙ БДУН .
Бесплатная десктопная прога. Но под каждый сайт в ручную прописывать что тащить нуно.
Цитата с сайта
НОЧНОЙ ДОЗОР
(он же НОЧНОЙ БДУН)
Все началось на блоге Вадима Ласто (ссылка). Программе много лет, но актуальной она стала лишь сейчас.
Назначение. Каждый пользователь Сети имеет несколько часто используемых "любимых" сайтов. Однако, получение информации часто сопряжено с затратами либо времени на поиск и навигацию, либо средств на трафик. Обычно бывает и то и другое.
Именно поэтому многие пользователи любят электронные журналы и рассылки. Но и в этом случае все равно приходится пройти несколько страниц для доступа к точке загрузки (например, всем знакомый Internet Zone) или ждать неделями появления одной-двух статей в рассылке. Часто в итоге, пользователь имеет крупицы полезной информации в море рекламной шелухи.
Ночной дозор имеет два режима работы:
1) Оффлайновый браузер - сбор любой информации с любых сайтов по заданным критериям и сохранение в виде дерева статей на диске.
2) Автоматический публикатор-синонимизатор - если у вас есть собственный сайт(ы) - любую собранную информацию Вы можете легко опубликовать с предвари тельной синонимизацией и/или перелинковкой.
Первый режим бесплатный и доступен для всех, второй же будет интересен web-мастерам которые хотят автоматизировать свой труд.
Рассмотрим сначала бесплатный режим, который подходит всем желающим:
Программа подключается к нужным сайтам по аналогии с оффлайн-браузерами и выполняет загрузку новостей и статей. Но при этом есть ряд важных отличий.
Программа автоматически соберет, систематизирует и сохранит, все что необходимо в Сети. Самые популярные ресурсы, самые свежие новости - всегда под рукой. В любое удобное время, можно прочитать собранную информацию или разместить ее в локальной сети.
Используется принцип интеллектуального выбора страниц для загрузки. С помощью технологии программируемой загрузки можно настроить получение только нужных рубрик с заранее заданных сайтов, причем если на сайте есть версии для печати можно получить сразу именно их. Таким образом, можно существенно (примерно пятикратно) экономить время и трафик.
Процесс загрузки полностью контролируется вплоть до таких мелочей как выборочная загрузка рисунков. Кроме этого, есть возможность получать рисунки позже, уже после загрузки страниц. Такой подход обеспечивает еще более быструю загрузку.
Страницы могут быть автоматически отредактированы "на лету". Из них можно исключить все лишние элементы. Баннеры, навигацию, скрипты и т.д. Полученные статьи хранятся как обычные файлы с понятными именами, и могут быть открыты не только из программы, но и через Проводник. Это делает программу незаменимой для web-мастеров, программистов, журналистов, экономистов, юристов и бухгалтеров. Не тратя время на серфинг Вы сможете всегда иметь свежайшую информацию из Сети.
Собранная информация может быть проиндексирована и собрана в файлы оглавления. После загрузки нескольких статей выполните команду Файл-обновить индекс. Вы получите собственный локальный портал, состоящий из нескольких главных страниц, которые связаны между собой и ведут на загруженные ранее статьи или новости сайтов. Согласитесь, приятно получить в свое распоряжение полностью настраиваемый и удобный электронный журнал.
Итак, с помощью НОЧНОГО ДОЗОРА можно получать информацию быстро и качественно.
Теперь подробнее о платном режиме. Он для тех кто зарабатывает в Сети. Описать все его нюансы можно, однако лучше один раз увидеть, поэтому лучше скачать и посмотреть небольшие видео-учебники, которые часто красноречивее слов (web-мастера, обратите особое внимание на 3 и 4 ссылки). Итак:
Дистрибутив программы
Видео-учебник о настройке опроса сайтов
Видео-учебник о режиме публикации новостей на своих сайтах
Пример публикации в WordPress
 
Ночной бдун хорошая прога но устарела по функционалу. Просто добавлять новости не очень эффективно
 
Вернусь немного к сабжу

Подскажите, пожалуйста, фреймворки для парсинга. Будет отлично если дадите еще и оценку (в плюсах / минусах)

Вот давиче наткнулся на phpQuery

Code:

Developer's blog:

Пример:
 


Как инструмент-дополнение - вполне пригоден и даже вполне удобен. На реализацию в коде не смотрел, но апи которое видно по примеру - не очень удобное, но это не такая уж и беда.
Из минусов непонятно - как он будет вести себя при невалидной верстке(как xml). но судя по тому, что сначала идет разбор как xml кода - то скорее всего загнется.
Можно использовать для парсинга отдельныъ сайтов и единичных задачек. Если по теме фреймворка для парсинга - то сложно будет использовать его как основу, прибавит больше гемора - чем удобства. Проще будет использовать как дополнение. Тем более, что для серьезного парсинга самая трудозатратная часть фреймворка это не разбор конкретной страницы, а вся остальная подготовительная часть:
- Многопоточность
- Задачность (умение задать программу для парсинга конкретного сайта, если тот требует некоторых предварительных действий прежде чем позволит выдрать страницу - авторизация например ...)
- Работа с прокси
- Скорость получения данных самой страницы

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

проще свою функцию сделать,
парсить от сих и до сих,
все что нужно сделать просмотреть html ресурсной страницы
 
Все обсуждения да обсуждения. Много есть интересных парсеров-екстракторов. В т.ч. и здесь на Нулледе. Например WebContentExtractor, WebInfoExtractor, Скания и т.д. Как хорошая вещь, так обязательно платная или ломаная не до конца.
Предложил бы кто софт по существу. Дайте в паблик то чего действительно не жалко и желательно стоящее.
 
Копай в сторону НОЧНОЙ БДУН .
Бесплатная десктопная прога. Но под каждый сайт в ручную прописывать что тащить нуно.
Цитата с сайта

Что за НОЧНОЙ БДУН такой? можно ссылочку на рабочий архив с описанием.
 
Приведу ссылку на один из реально действующих, используемый многими "конторами", универсальных парсеров

Как заявляют авторы:
Ответ: Нашей компанией разработан и официально зарегистрирован информационный программный продукт, получивший название Web-Observer. Продукт позволяет проводить автоматический сбор публикаций и мониторинг электронных источников информации. Результатом процесса является специализированный новостной поток, критерии поиска для которого задаются самим пользователем. Система автоматически доставляет отобранную информацию на электронный адрес пользователя или посредством SMS-сообщений на его мобильный телефон.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху