Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Апрель 4, 2007 06:25:48

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

Подскажите как с помощью питона, убить html-код



Офлайн

#2 Апрель 4, 2007 07:48:06

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

:D в смысле убить?



Офлайн

#3 Апрель 4, 2007 07:58:38

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

Открыть страницу, например с помощь модулая urllib,urllib2, и записать в файл весь текст, кроме ХТМЛ тегов.:)



Офлайн

#4 Апрель 4, 2007 08:45:34

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

philosof
Открыть страницу, например с помощь модулая urllib,urllib2, и записать в файл весь текст, кроме ХТМЛ тегов.
Можно регэкспами попробовать сделать это.



Офлайн

#5 Апрель 4, 2007 09:09:24

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

А можно с помощью HTMLParser. Насколько помню, довольно простая в работе отвёртка.



Офлайн

#6 Апрель 4, 2007 09:23:05

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 116
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

Сильно от страницы зависит, однако… Конечно можно устроить геноцид всему, что лежит между символами “<” и “>”, регулярными выражениями это нетрудно (или простым поиском), только не каждой странице это поможет. Если там сложная табличная структура или скриптов полно, получится ерунда. А есть сайты, где текст ещё и портят специально, в браузере простым нормальным текстом выглядит, а html-код - просто кошмар. Реально обычно приходится под каждый сайт отдельную программулину писать.



Офлайн

#7 Апрель 4, 2007 10:38:10

denz
От:
Зарегистрирован: 2007-01-09
Сообщения: 117
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

python-lxml
включает в себя _libxml2: (http://www.xmlsoft.org) и _libxslt: (http://xmlsoft.org/XSLT)
Читаешь xslt и делаешь с хтмл-ей ним все что тебе приснится :)
Приблизительный темплейт:

<xsl:stylesheet version=“1.0” xmlns:xsl="http://www.w3.org/1999/XSL/Transform“>
<xsl:output
method=”html“
indent=”yes“
encoding=”utf-8“/>
<xsl:template match='node()|text()'>
<xsl:copy-of select=”text()">
</xsl:copy-of>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>

P.S. Не тестил



Отредактировано (Апрель 4, 2007 11:10:56)

Офлайн

#8 Апрель 4, 2007 21:08:31

kulibinka
От:
Зарегистрирован: 2007-03-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

через sgmllib просто делается.



Офлайн

#9 Апрель 5, 2007 11:24:20

Maximbo
От:
Зарегистрирован: 2006-11-04
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

denz
python-lxml
включает в себя _libxml2: (http://www.xmlsoft.org) и _libxslt: (http://xmlsoft.org/XSLT)
Читаешь xslt и делаешь с хтмл-ей ним все что тебе приснится :)
По-моему, это для строгого xml, а правила html гораздо мягче.



Офлайн

#10 Апрель 5, 2007 14:51:39

denz
От:
Зарегистрирован: 2007-01-09
Сообщения: 117
Репутация: +  0  -
Профиль   Отправить e-mail  

Убить HTML

Maximbo
По-моему, это для строгого xml, а правила html гораздо мягче.
Да, потестил, нормально чистит, но кривые хтмли нужно сначала ровнять.
Нужно валидатором сначала проверять и както ровнять.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version