Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2010 09:57:00

Dit81
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Нужно найти подстроку такого вида - {?TITLE?} или подобного в коде html - <html><title>{?TITLE?}</title><body></body></html>
Чем лучше искать, есть ли стандартные функции или методы Питона. Или нужно использовать только рег. выражения? И подскажите как это распарсить?
Заранее спасибо!



Офлайн

#2 Дек. 9, 2010 14:47:19

onemoretime
От:
Зарегистрирован: 2009-10-25
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.



Офлайн

#3 Дек. 9, 2010 15:00:45

Dit81
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

onemoretime
Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.
Спасибо, посмотрю…



Офлайн

#4 Дек. 9, 2010 16:12:32

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Регулярные выражения вам в помощь (модуль re) или sting.find().

Офлайн

#5 Дек. 10, 2010 00:38:31

AlexAV
От:
Зарегистрирован: 2010-08-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Dit81
onemoretime
Если не ошибаюсь Beutifull Soup должен это уметь.
А если не хочется использовать его, то регулярные выражения вам в помощь.
Спасибо, посмотрю…
Я конечно совсем не эксперт, но по моему скромному опыту Beutifull Soup по быстродеийствию сильно уступил регулярным выражениям. Хотя конечно может быть это руки.



Офлайн

#6 Дек. 10, 2010 00:53:01

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Найти подстроку в строке html кода

А регулярки некорректно обрабатывают XML. И кто тут прав?



Офлайн

#7 Дек. 10, 2010 08:35:21

Dit81
От:
Зарегистрирован: 2010-12-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Ferroman
Регулярные выражения вам в помощь (модуль re) или sting.find().
А пример работы с sting.find() можно привести по поиску подстроки в строке символов? Заранее спасибо!



Офлайн

#8 Дек. 10, 2010 12:47:15

AlexAV
От:
Зарегистрирован: 2010-08-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

Андрей Светлов
А регулярки некорректно обрабатывают XML. И кто тут прав?
Как заведомый новичок, рискну спросить, а в чем выражается неккоректность обработки? :)

А в целом мне представляется, что регулярки можно использовать если нужно выцепить из странички какие-то отдельные данные, а если нам нужно работать с полной структурой документа то тут уже стоит использовать бьютифулсоуп и т.п.



Офлайн

#9 Дек. 10, 2010 14:06:01

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Найти подстроку в строке html кода

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

a='<html><title>{?TITLE?}</title><body></body></html>'
title = a[a.find('<title>') + len('<title>'):a.find('</title>')]



Офлайн

#10 Дек. 10, 2010 17:41:34

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Найти подстроку в строке html кода

Вспомнилась одна история.

Есть такой продукт - wordpress. С ним можно работать через API. Транспортом идет XML.
Один человек попробовал - хотел своим скриптом публикации заливать и т.д.
Каково же было его удивление - wordpress обрабатывал далеко не все запросы.
Просмотр кода показал, что разбор XML делается через регулярки. Которые - кривоватые.

В результате пришлось делать генератор “XML по вордпрессовски”, чтобы обходить эти глюки регулярок.
Зачем же тогда называть формат XML, если на деле это наколенное не пойми что?

Мораль: если работаете со структурированным текстом - используйте библиотеки, предназначенные для обрабатываемого формата.
Иначе довольно легко можно поймать неожиданное. Чем больше у вашей поделки пользователей - тем выше шанс споткнуться.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version