Python 使用lxml清除html,但添加空格
我用这个答案来清理一个HTML文件 它在删除所有html、脚本和样式标记方面做得很好,但是如果文本中没有空间,则清洁器不会添加空间。这对于菜单这样没有空格的东西来说是个问题,所以它是一个单词,因为它们一起运行Python 使用lxml清除html,但添加空格,python,html,Python,Html,我用这个答案来清理一个HTML文件 它在删除所有html、脚本和样式标记方面做得很好,但是如果文本中没有空间,则清洁器不会添加空间。这对于菜单这样没有空格的东西来说是个问题,所以它是一个单词,因为它们一起运行 关于如何防止这种情况,增加空间,或其他什么的想法?谢谢这可能对未来的任何人都有帮助,也可能没有帮助,但这对我来说很有用 from lxml import html as HTML from lxml.html.clean import clean_html from lxml.html.
关于如何防止这种情况,增加空间,或其他什么的想法?谢谢这可能对未来的任何人都有帮助,也可能没有帮助,但这对我来说很有用
from lxml import html as HTML
from lxml.html.clean import clean_html
from lxml.html.clean import Cleaner
import re
html = "<div>Test</div><div>Test 2</div>"
spaced_html = re.sub("</", " </", html)
doc = HTML.document_fromstring(spaced_html)
cleaner = Cleaner()
cleaner.javascript = True
cleaner.style = True
doc = cleaner.clean_html(doc)
text = doc.text_content()
text = re.sub(' +',' ',text)
从lxml将html导入为html
从lxml.html.clean导入clean_html
从lxml.html.clean导入清理器
进口稀土
html=“test2”
一种相对简洁的方法是
import lxml.html
from lxml import etree
html = "<div>Test</div><div>Test 2</div>"
document = lxml.html.document_fromstring(html)
text = " ".join(etree.XPath("//text()")(document))
import lxml.html
从lxml导入etree
html=“test2”
document=lxml.html.document\u fromstring(html)
text=”“.join(etree.XPath(“//text()”)(文档))
(另请参见)如果您想解决相同的问题,但使用bs4
并删除lxml
:
from bs4 import BeautifulSoup
html = "<div>Test</div><div>Test 2</div>"
soup = BeautifulSoup(html)
text = soup.getText(separator=u' ')
从bs4导入美化组
html=“test2”
soup=BeautifulSoup(html)
text=soup.getText(分隔符=u“”)
这是否回答了您的问题?