【发布时间】:2020-01-08 03:05:12
【问题描述】:
假设我有Hello world.(Hello 之前有一个空格)作为输入,然后我运行:
soup = bs(input, "lxml")
Hello world. 之前的初始空格在输出中被忽略。如何在上述输入之前保留空格?
我尝试了其他解析器,例如 xml, html.parser。但是,对我来说,lxml 工作得很好,除了这种情况。
如果有人能就如何避免这种情况提出建议,那将会很有帮助。
例子:
>>> from bs4 import BeautifulSoup as bs
>>> soup = bs(' Hello world.', "lxml")
>>> soup.p
<p>Hello world.</p>
>>> print(soup)
<html><body><p>Hello world.</p></body></html>
【问题讨论】:
-
bs4.BeautifulSoup()将保留空白。你的例子有缺陷。 -
@accdias 您能否详细说明并提出建议?
-
试试
soup = bs('<p> Hello world.<p>', 'lxml'),你会看到空间就在那里。换句话说,当你解析实际网页时,任何标签内容内的任何现有空格都将被保留。 -
或者更好的是
soup = bs('<p> Hello world.<p>No trailing space here', 'lxml'),然后是soup.find_all('p')。