Dit81
Дек. 9, 2010 09:57:00
Нужно найти подстроку такого вида - {?TITLE?} или подобного в коде html - <html><title>{?TITLE?}</title><body></body></html>
Чем лучше искать, есть ли стандартные функции или методы Питона. Или нужно использовать только рег. выражения? И подскажите как это распарсить?
Заранее спасибо!
onemoretime
Дек. 9, 2010 14:47:19
Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.
Dit81
Дек. 9, 2010 15:00:45
onemoretime
Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.
Спасибо, посмотрю…
Ferroman
Дек. 9, 2010 16:12:32
Регулярные выражения вам в помощь (модуль re) или sting.find().
AlexAV
Дек. 10, 2010 00:38:31
Dit81
onemoretime
Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.
Спасибо, посмотрю…
Я конечно совсем не эксперт, но по моему скромному опыту Beutifull Soup по быстродеийствию сильно уступил регулярным выражениям. Хотя конечно может быть это руки.
Андрей Светлов
Дек. 10, 2010 00:53:01
А регулярки некорректно обрабатывают XML. И кто тут прав?
Dit81
Дек. 10, 2010 08:35:21
Ferroman
Регулярные выражения вам в помощь (модуль re) или sting.find().
А пример работы с sting.find() можно привести по поиску подстроки в строке символов? Заранее спасибо!
AlexAV
Дек. 10, 2010 12:47:15
Андрей Светлов
А регулярки некорректно обрабатывают XML. И кто тут прав?
Как заведомый новичок, рискну спросить, а в чем выражается неккоректность обработки? :)
А в целом мне представляется, что регулярки можно использовать если нужно выцепить из странички какие-то отдельные данные, а если нам нужно работать с полной структурой документа то тут уже стоит использовать бьютифулсоуп и т.п.
Zubchick
Дек. 10, 2010 14:06:01
я, конечно, не эксперт, но по-моему в хтмл файле только один заголовок. наверно самый простой способ найти через find
a='<html><title>{?TITLE?}</title><body></body></html>'
title = a[a.find('<title>') + len('<title>'):a.find('</title>')]
Андрей Светлов
Дек. 10, 2010 17:41:34
Вспомнилась одна история.
Есть такой продукт - wordpress. С ним можно работать через API. Транспортом идет XML.
Один человек попробовал - хотел своим скриптом публикации заливать и т.д.
Каково же было его удивление - wordpress обрабатывал далеко не все запросы.
Просмотр кода показал, что разбор XML делается через регулярки. Которые - кривоватые.
В результате пришлось делать генератор “XML по вордпрессовски”, чтобы обходить эти глюки регулярок.
Зачем же тогда называть формат XML, если на деле это наколенное не пойми что?
Мораль: если работаете со структурированным текстом - используйте библиотеки, предназначенные для обрабатываемого формата.
Иначе довольно легко можно поймать неожиданное. Чем больше у вашей поделки пользователей - тем выше шанс споткнуться.