philosof
Апрель 4, 2007 06:25:48
Подскажите как с помощью питона, убить html-код
philosof
Апрель 4, 2007 07:58:38
Открыть страницу, например с помощь модулая urllib,urllib2, и записать в файл весь текст, кроме ХТМЛ тегов.:)
slivlen
Апрель 4, 2007 08:45:34
philosof
Открыть страницу, например с помощь модулая urllib,urllib2, и записать в файл весь текст, кроме ХТМЛ тегов.
Можно регэкспами попробовать сделать это.
Maximbo
Апрель 4, 2007 09:09:24
А можно с помощью
HTMLParser. Насколько помню, довольно простая в работе отвёртка.
Striver
Апрель 4, 2007 09:23:05
Сильно от страницы зависит, однако… Конечно можно устроить геноцид всему, что лежит между символами “<” и “>”, регулярными выражениями это нетрудно (или простым поиском), только не каждой странице это поможет. Если там сложная табличная структура или скриптов полно, получится ерунда. А есть сайты, где текст ещё и портят специально, в браузере простым нормальным текстом выглядит, а html-код - просто кошмар. Реально обычно приходится под каждый сайт отдельную программулину писать.
denz
Апрель 4, 2007 10:38:10
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. Не тестил
kulibinka
Апрель 4, 2007 21:08:31
через sgmllib просто делается.
Maximbo
Апрель 5, 2007 11:24:20
denz
python-lxml
включает в себя _libxml2: (http://www.xmlsoft.org) и _libxslt: (http://xmlsoft.org/XSLT)
Читаешь xslt и делаешь с хтмл-ей ним все что тебе приснится :)
По-моему, это для
строгого xml, а правила html гораздо
мягче.
denz
Апрель 5, 2007 14:51:39
Maximbo
По-моему, это для строгого xml, а правила html гораздо мягче.
Да, потестил, нормально чистит, но кривые хтмли нужно сначала ровнять.
Нужно валидатором сначала проверять и както ровнять.