Чем отпарсить большой RSS

D
На сайте с 20.05.2001
Offline
305
728

Порядка 1ого гигабайта, надо его хотя бы в CSV перегнать. Может сфот какой или скрипт посоветуете, все что не пробую, либо виснет, либо не понимает его.

M
На сайте с 09.03.2007
Offline
1
#1

Perl?

Ищи парсеры, либо софт, работающие на EXPAT. Он гораздо более быстрый т.к. работает с потоком данных, без постройки дерева в памяти. То, что у тебя висло - скорее всего работает на SAX2 - он более "навороченный", но и в десятки раз более медленный.

п.с. 1 гиг - это не проблема. Проблемы с объемом данных начинаются после 2 гигабайт.

D
На сайте с 20.05.2001
Offline
305
#2

Да на чем угодно, perl, php, exe лишь бы работало, за совет спасибо буду искать.

dkameleon
На сайте с 09.12.2005
Offline
386
#3

Вот тут:

http://ua.php.net/manual/en/ref.xml.php

Example 2507. Show XML Element Structure

Как раз пример потокового парсинга.

Думаю, можно на его основе реализовать локальную консольную версию.

В самом начале скрипта установить тайм лимит, чтобы не вылетал через 30 секунд.

Результаты так и выводить через echo.

В винде привязать расширение .php чтобы по умолчанию открывалось с помощью php.exe

дале в консоли запускаем:

C:\>parser.php > parsed.csv
Дизайн интерьера (http://balabukha.com/)
FView
На сайте с 03.05.2006
Offline
186
#4
Drow:
Порядка 1ого гигабайта, надо его хотя бы в CSV перегнать. Может сфот какой или скрипт посоветуете, все что не пробую, либо виснет, либо не понимает его.

а из-за чего виснет то выяснили? сдается мне что ограничения на сервере срабатывают (это как предположение) ...

edogs software
На сайте с 15.12.2005
Offline
775
#5
Drow:
Порядка 1ого гигабайта, надо его хотя бы в CSV перегнать. Может сфот какой или скрипт посоветуете, все что не пробую, либо виснет, либо не понимает его.

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

RSS, если мы правильно помним, имеет достаточно линейный формат? Мы для парсения больших файлов с линейно занесенной инфой делаем так - считывается часть файла, обрабатывается, потом ручной контроль времени не прошло ли 10-20 секунд, если не прошло, то следующий кусок, если прошло, то редирект на себя же с параметром где указана текущая точка файла. fseek/ftell - для позиций по файлу, microtime для измерения времени. Собственно более чем банально, но тем не менее.

P.S.: Сорри что немного повторяемся.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
deepslam
На сайте с 09.05.2006
Offline
204
#6

А ссылкой не поделитесь (в личку)? Хочу протестить парсер новой версии скрипто. Буду очень Вам благодарен.

Удаление вирусов на сайте (http://www.virusonsite.ru) | Scripto CMS - бесплатная система управления сайтом (http://www.scripto-cms.ru) |Профессиональный скрипт каталога ссылок , статей, фирм и объявлений! (http://www.scripto.ru) | Уникальный скрипт для публикации контента (http://publisher.scripto.ru)

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