сайт -> OpenOffice Calc

disna

Есть некий сайт, публикующий некую статистическую информацию на конкретной странице. Необходимо извлечь часть этой информации, быть может, как-то обработать и запихать в табличный формат(например xls, но лучше sxc). Как сделать это проще всего?
Необходимое требование: решение должно быть под linux.

yolki

под линукс, в эксель?

disna

хорошо, в OpenOffice Calc

yolki

может, в csv ?

disna

можно и этот вариант рассмотреть
хотя там нельзя в ячейки формулки вписывать

amkharchenko

В прынцыпе, если основной проблемой является именно перенос в OpenOffice, то можно попробовать посмотреть в сторону ooolib (тока он на perl, так что изначальный рвотный рефлекс надо подавлять силой воли). Это вроде бы stand-alone решение, т.е. самого OpenOffice оно не требует.
Еще можно попробовать Python-UNO. хотя, необходимость постоянного висения окошка OpenOffice, пусть и на специально созданном для этого Workplace раздражает. Зато, удобно и на Python

Svyatogor

На самом деле пойдет любой UNO (есть реализации на Java, может быть еще для C есть).
хотя, необходимость постоянного висения окошка OpenOffice, пусть и на специально созданном для этого Workplace раздражает.
Даже если правильно опции выставлять? Под Windows нормально Calc запускается без открывания окон (сам его из Java гонял, правда на уже существующем файле).

Landstreicher

> под линукс, в эксель?
есть какие-то проблемы в запуске экселя на линукс? у меня на машине работает, что я делаю не так?

kruzer25

что я делаю не так?
Невнимательно читаешь посты, не понимаешь вопросов, понтуешься.

disna

хорошо, как запихать в таблицу, понятно
а как выдрать инфу с сайта?
есть ли какой-нибудь аналог libxml2 для perl?

Ober

м.б. поможет
http://perl-xml.sourceforge.net/faq/

laki

Java Curl + Poi снимается все и пишется все

sany79

Есть, конечно.
Посмотри perl-libxml-perl:
The libxml-perl perl module is a collection of smaller Perl modules, scripts,
and documents for working with XML in Perl. libxml-perl software works
in combination with XML::Parser, PerlSAX, XML::DOM, XML::Grove and others
А формат OpenOffice простой: распакуй файл OOCalc zip'ом и посмотри. Если страница на сайте в XML, то можно обойтись и без Перла, одним лишь XSLT. Если в HTML, то, может быть, сначала привести её в соответствие с XHTML каким-нибудь tidy, а затем преобразовать с помощью XSLT каким-нибудь Saxon'ом?
Помнится, почненный DarkGray хорошо разбирался в XSLT — можно спросить у него.

disna

спасибо, я пока остановился на связке HTML-Parser + ooolib, ибо оба на perl

sany79

Вот, попробовал выдрать инфу о погоде с сайта pda.gismeteo.ru:

wget -qO - 'http://pda.gismeteo.ru/27612.htm' |tidy -asxhtml 2>/dev/null| saxon7batch - your_stylesheet.xsl

Кажется, этого достаточно, осталось лишь написать стилевик. См. http://nwalsh.com/docs/tutorials/xsl/xsl/frames.html — очень неплохой туториал для простых людей

amkharchenko

Ну, вообще говоря, "reverse-engineering" открытых стандартов методом пристального взгляда на необъятные xml довольно-таки специфическое занятие. В том смысле, что для быстрого решения частных задач, конечно же, подходит (hello, но для создания чего-то, что потом еще придется поддерживать/модифицировать не катит. При этом, разбираться в такой штуке как OpenDocument вообще никакого желания не возникает (it was hard to invent, it should be hard to parse). Понятно, например, желание аффтаров KOffice не иметь ничего общего с кодом OpenOffice.org'а (который, как говорят, просто ужасен для чего они самостоятельно написали парсер этого семейства форматов. Однако, для небольших целей, таких как выдирание для Оркадея информации по уязвимостям в bugtraq'ах, решение на основе UNO представляется более целесообразным. Например, тем фактом, что позволит создавать не только OpenDocument, но и родные MS Office'овские форматы. Такое мое мнение.
Про Оркадея --- это я так, предположил

sany79

Да нет, я понимаю, что моё предложение неэстетично (хотя дёшево, надёжно и практично). Надо знать подробнее характер задачи, которая поставлена перед . Может, ему надо быстрей, или с мЕньшими умственными затратами, или только на Перле, или нечто универсальное. А может, как раз нужно собрать статистику о погоде с gismeteo. Так что не имею ничего против выбора , и против других предлагаемых вариантов. Впрочем, мне не приходилось генерировать файлы в формате OO; когда-то я в них заглядывал, и мне показалось, что там всё не очень сложно. Чем больше мы внесём предложений, тем больше степеней свободы будет у

disna

чем UNO предпочтительнее ooolib?

amkharchenko

1. Поддерживает все форматы, которые поддерживает OpenOffice, а не только sxw итп.
2. Предположительно, авторы OpenOffice лучше всех знают о форматах OpenDocument и о своих родных форматах, поэтому вероятность получить нечитаемый OO.org документ на выходе почти равна нулю.
3 и главное. Есть биндинги для Python.

amkharchenko

Кстати, оказалось, реально я ступил насчет окошка висящего.
ooffice -headless спасает отца русской демократии.

NAIL

PHP + Pear::SpreedSheetWriter

disna

нашел гуглом экземпл, который оказался лучше и понятнее, чем документация по Python-UNO bridge
html-парсер на питоне есть в стандартной библиотеке (модуль htmllib)
Оставить комментарий
Имя или ник:
Комментарий: