LINUX.ORG.RU

Посоветуйте язык для написания HTML парсера


0

0

Всем привет!

Хочу написать парсер HTML файлов (ну, вставлять, удалять, изменять определенные части файла). Использование: как утилитка коммандной строки, но в будущем надеюсь оснастить web интерфейсом и выложить в интернет (скажем, apache).

Пока что пишу на bash с использованием sed . Функционала хватает, хотя немного неудобно (все-таки bash не для этого). Выучить любой другой язык - не проблема (не шучу).

Отсюда два вопроса:

1. На каком языке лучше такие фишки писать? Perl? Python? Как народ смотрит на что-то типа tcl?

2. С HTML лучше работать как с текстовым файлом, или какой-то xml парсер может облегчить жизнь? (под bash нашел xmlstarlet, под всякие perl'ы и другие языки, полагаю, есть соответствующие классы).

★★★★★

>Как народ смотрит на что-то типа tcl?

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

jtootf ★★★★★
()

>С HTML лучше работать как с текстовым файлом, или какой-то xml парсер может облегчить жизнь?

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

wfrr ★★☆
()

>1. На каком языке лучше такие фишки писать? Perl? Python? Как народ смотрит на что-то типа tcl?

Delphi. Глобально, надежно, перспективно

Karapuz ★★★★★
()

Знаешь как PERL расшифровывается ?
Расшифруешь - получишь описание своего т.з.

ovax ★★★
()

Посмотри на TXL - www.txl.ca, он изначально задуман для преобразований. Там ты будешь оперировать с деревом разбора. Дружит с командной строкой.

Попробуй запустить с параметром -xml увидишь как в памяти представляется html. txl -xml my.html (в каталоге ./Txl должны быть грамматика и программа) или txl -xml my.html prog.txl.

dr_jumba
()
Ответ на: комментарий от Miguel

>> Выучить любой другой язык - не проблема (не шучу).

>Ну тады на хаскеле!

+1

imp ★★
()

> 1. На каком языке лучше такие фишки писать? Perl? Python? Как народ смотрит на что-то типа tcl?

Хорошо смотрит. Более того, для tcl он уже написан (htmlparse из tcllib).

> 2. С HTML лучше работать как с текстовым файлом, или какой-то xml парсер может облегчить жизнь? (под bash нашел xmlstarlet, под всякие perl'ы и другие языки, полагаю, есть соответствующие классы).


html != xml. Тут нет даже включения ни в одну сторону. Хотя xml-генератором можно сделать корректный html, если точно знать, какие параметры у него устанавливать.

gaa ★★
()
Ответ на: комментарий от nnkd

> Python легко освоить, есть практически везде,

Неужели питон освоить легче чем Visual Basic.NET, который есть везде, где есть дотнет?

gaa ★★
()
Ответ на: комментарий от gaa

> Неужели питон освоить легче чем Visual Basic.NET, который есть везде, где есть дотнет?

1. Легче

2. VB.NET есть мало где.

monk ★★★★★
()
Ответ на: комментарий от monk

>> Неужели питон освоить легче чем Visual Basic.NET, который есть везде, где есть дотнет?
> 1. Легче


ТО есть петон проще бейсика? Я записал.

> 2. VB.NET есть мало где.


И где же его нет? На всех линуксах исполняемый файл можно запустить, на виндах и подавно.

gaa ★★
()

Вот пока что мои соображения (на растерзание толпы):

Отказать:

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

JavaScript - чисто web язык, который в чистом виде использовать тяжело. Да и по-моему, я немного писал на нем - не понравилось, достаточно коряв. Полезен только если нужен интерактивный интерфейс или server-side языки не поддерживаются, а мне нужно именно server-side приложение.

C#, VB, Delphi (надеюсь, это была шутка) - отказать. Не для этих целей они, а VB еще и коряв до ужаса. C#, правда, не пробовал, но сама .NET подразумевает тяжеловесность. Да и после VB и Visual C (да простят меня ценители) - не верю я поделиям Микрософт: слишком долго к ним привыкать надо.

Заинтересовало (в порядке приоритетов):

TCL - помню, что это язык с немного другой логикой, чем, скажем C-подобные. Давно хотел его изучить. Кроме того, AFAIK он удобен при большом колличестве циклов и рекурсий. Так ли это?

Haskel - честно, ничего не могу про него сказать. Раз народ рекомендует, стОит посмотреть в эту сторону.

Perl - слышал что он именно для обработки строк, что и прильщает. Видел синтаксис - немного confusing, но после sed - довольно приемлем.

Python - отношу к тяжеловесным языкам, но общее мнение о нем положительное (даже не поню почему).

Вопрос в студию: Как у TCL, Haskel и Perl работа с классами (про Python не спрашиваю ;) ) ? - Слишком я люблю ООП :)

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

> TCL - помню, что это язык с немного другой логикой, чем, скажем C-подобные.

На нём можно писать в c-style и синтаксис тому благоприятствует. Но не нужно :)

> Давно хотел его изучить.


Рекомендую Practical Programming in Tcl and Tk, Fourth Edition By Brent B. Welch, Ken Jones, Jeffrey Hobbs

> Кроме того, AFAIK он удобен при большом колличестве циклов и рекурсий. Так ли это?


Честно говоря, не могу понять, откуда взято такое утверждение.
Но со строками вообще Tcl работает весьма хорошо и просто ввиду того, что в tcl "всё есть строка". Ставлю в кавычки, потому что давно реализованы внутреннее представление, конвертирующее один тип данных в другой только при необходимости.

> Вопрос в студию: Как у TCL... работа с классами? - Слишком я люблю ООП :)


Несколько объектных моделей на выбор: snit(на основе делегации), itcl(а-ля c++), xotcl(говорят, что близок к крутейшему CLOS, но я его в руках не вертел). Более того, многие вещи красиво реализуются и без ООП как обязательного инструмента.

gaa ★★
()
Ответ на: комментарий от gaa

> Рекомендую Practical Programming in Tcl and Tk, Fourth Edition By Brent B. Welch, Ken Jones, Jeffrey Hobbs

Спасибо. Скачал, посомотрел. Первое что бросилось в глаза - оглавление на 22 страницы :)

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

>> Рекомендую Practical Programming in Tcl and Tk, Fourth Edition By Brent B. Welch, Ken Jones, Jeffrey Hobbs
> Спасибо. Скачал, посомотрел. Первое что бросилось в глаза - оглавление на 22 страницы :)


Для начала и первой-второй части хватит. Дальше уже про Tk и сишный интерфейс.

gaa ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.