小编KCz*_*zar的帖子

使BeautifulSoup句柄像浏览器一样换行

我正在使用BeautifulSoup(Python 3.4版本'4.3.2')将html文档转换为文本。我遇到的问题是,有时网页中的换行符“ \ n”实际上不会在浏览器中显示为换行符,但是当BeautifulSoup将它们转换为文本时,它会留在“ \ n”中。

例:

您的浏览器可能会在一行中呈现以下所有内容(即使中间包含换行符):

这是一个段落。

即使我输入的内容中没有换行符,您的浏览器也可能以多行显示以下内容:

这是一个段落。

这是另一段。

但是,当BeautifulSoup将相同的字符串转换为文本时,它使用的唯一换行符是换行符-并且始终使用它们:

from bs4 import BeautifulSoup

doc = "<p>This is a\nparagraph.</p>"
soup = BeautifulSoup(doc)

soup.text
Out[181]: 'This is a \n paragraph.'

doc = "<p>This is a paragraph.</p><p>This is another paragraph.</p>"
soup = BeautifulSoup(doc)

soup.text
Out[187]: 'This is a paragraph.This is another paragraph.'
Run Code Online (Sandbox Code Playgroud)

有谁知道如何使BeautifulSoup以更漂亮的方式提取文本(或者实际上只是使所有换行符正确)?还有其他解决问题的简单方法吗?

html python beautifulsoup

5
推荐指数
2
解决办法
2771
查看次数

标签 统计

beautifulsoup ×1

html ×1

python ×1