我想知道是否有可能使它prettify不会在特定标签上创建新行.
我想这样做,span以及a标签不会拆分,例如:
doc="""<div><div><span>a</span><span>b</span>
<a>link</a></div><a>link1</a><a>link2</a></div>"""
from bs4 import BeautifulSoup as BS
soup = BS(doc)
print soup.prettify()
Run Code Online (Sandbox Code Playgroud)
以下是我想要打印的内容:
<div>
<div>
<span>a</span><span>b</span>
<a>link</a>
</div>
<a>link1</a><a>link2</a>
</div>
Run Code Online (Sandbox Code Playgroud)
但这是实际印刷的内容:
<div>
<div>
<span>
a
</span>
<span>
b
</span>
<a>
link
</a>
</div>
<a>
link1
</a>
<a>
link2
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
在新行上放置内联样式标记实际上会在它们之间添加空格,稍微改变实际页面的外观.我将链接到显示差异的两个jsfiddles:
如果您想知道为什么这对BeautifulSoup很重要,那是因为我正在编写一个网页调试器,并且美化功能将非常有用(以及bs4中的其他内容).但如果我对文件进行美化,那么我就冒险改变一些事情.
那么,有没有办法自定义prettify功能,以便我可以设置它不分解某些标签?