相关疑难解决方法(0)

通过标签定制BeautifulSoup的美化

我想知道是否有可能使它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功能,以便我可以设置它不分解某些标签?

html python beautifulsoup

11
推荐指数
1
解决办法
3136
查看次数

标签 统计

beautifulsoup ×1

html ×1

python ×1