?

Log in

No account? Create an account

tech: backport from HTML to CSV

« previous entry | next entry »
авг. 28, 2005 | 12:04 am

sed '1,/[Tt][Aa][Bb][Ll][Ee]/d;/\/[Tt][Aa][Bb][Ll][Ee]/,/\/[Hh][Tt][Mm][Ll]/d;s/\<\/tr\>/|/gi;s/,/ /g;s/\<\/td\>/,/gi;s/\<br\>/ /gi;s/\<[^>]*\>//gi;s/ / /gi' file.html | tr -d '\n' | tr '|' '\n' > file.csv

очевидно, тем, у кого в полях встречается |, потребуется подобрать другой временный символ - впрочем, никто не мешает вставить туда ^G, например.

Метки:

Ссылка | Что скажете? | Поделиться

Comments {13}

Сингулярное Сло

* * *

from: elephantum
date: авг. 27, 2005 08:34 pm (UTC)
Ссылка

гхм, а может все-таки xslt?

Свои 5 коп. | Развитие

erra

а я XSLT не знаю

from: erra
date: авг. 27, 2005 08:43 pm (UTC)
Ссылка

кроме того, как-то он смешно спотыкается:

xsltproc --html file.html
...
<td align=center>
          ^
file.html:55: parser error : Opening and ending tag mismatch: small line 53 and td
        MP3 160 kbps, 44.1 kHz Stereo</td>

Свои 5 коп. | Предыстория | Развитие

Сингулярное Сло

Re: а я XSLT не знаю

from: elephantum
date: авг. 27, 2005 08:47 pm (UTC)
Ссылка

правильно, атрибуты в кавычках должны быть написаны.
ээх

Свои 5 коп. | Предыстория | Развитие

erra

мало ли кому они чего должны

from: erra
date: авг. 27, 2005 08:50 pm (UTC)
Ссылка

если я сейчас буду писать ему парсер, который приводит HTML к каноническому виду, это займёт столько же времени, сколько заняла итоговая команда для sed ;>

Свои 5 коп. | Предыстория | Развитие

Сингулярное Сло

Re: мало ли кому они чего должны

from: elephantum
date: авг. 27, 2005 09:08 pm (UTC)
Ссылка

видимо это особый слой реальности
со своими стандартами и методиками =)

Свои 5 коп. | Предыстория | Развитие

erra

где?

from: erra
date: авг. 27, 2005 09:18 pm (UTC)
Ссылка

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

Свои 5 коп. | Предыстория | Развитие

Сингулярное Сло

Re: где?

from: elephantum
date: авг. 27, 2005 09:29 pm (UTC)
Ссылка

я же говорю - особая реальность =)
в нашей атрибуты обязаны содержаться в одинарных или двойных кавычках =)

Свои 5 коп. | Предыстория | Развитие

erra

да-да, конечно (C)

from: erra
date: авг. 27, 2005 09:40 pm (UTC)
Ссылка

до тех пор, пока броузеры понимают бескавычное написание (а они понимают), требовать строгого соблюдения стандартов можно, но на уровне парсеров вредно. Умный парсер должен быть лучше глупого кодера.

Свои 5 коп. | Предыстория | Развитие

Кукуц Шмукуц

Re: да-да, конечно (C)

from: kukutz
date: авг. 28, 2005 10:52 am (UTC)
Ссылка

Вот бы bacekа в этом убедить.

Свои 5 коп. | Предыстория | Развитие

erra

а надо?

from: erra
date: авг. 28, 2005 05:11 pm (UTC)
Ссылка

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

Свои 5 коп. | Предыстория | Развитие

Кукуц Шмукуц

Re: а надо?

from: kukutz
date: авг. 28, 2005 05:36 pm (UTC)
Ссылка

Подставь на место слова HTML слово RSS и ты поймёшь суть моей проблемы.

Свои 5 коп. | Предыстория | Развитие

Сингулярное Сло

Re: где?

from: elephantum
date: авг. 27, 2005 09:30 pm (UTC)
Ссылка

я бы, кстати, предложил в качестве профилактики оторвать руки тому, кто учинил этот html-документ =)

Свои 5 коп. | Предыстория | Развитие

erra

профилактику надо было начинать давно

from: erra
date: авг. 27, 2005 09:42 pm (UTC)
Ссылка

и тогда не появилось бы очень много вещей, например, ослика IE. Но in general любой UI, который не учитывает ошибок пользователя - это плохой UI, и данный случай вполне соответствует.

Свои 5 коп. | Предыстория | Развитие