使用 Beautiful Soup 剥离 HTML 时保留空间

发布于 2024-11-29 21:35:11 字数 443 浏览 0 评论 0原文

from BeautifulSoup import BeautifulSoup

html = "<html><p>Para 1. Words</p><p>Merge. Para 2<blockquote>Quote 1<blockquote>Quote 2</p></html>"
print html
soup = BeautifulSoup(html)
print u''.join(soup.findAll(text=True))

该代码的输出是“Para 1 WordsMerge.Para 2Quote 1Quote 2”。

我不希望第一段的最后一个词与第二段的第一个词合并。 例如。 “第 1 段文字合并。第 2 段引用 1 引用 2”。 使用 BeautifulSoup 库可以实现这一点吗?

from BeautifulSoup import BeautifulSoup

html = "<html><p>Para 1. Words</p><p>Merge. Para 2<blockquote>Quote 1<blockquote>Quote 2</p></html>"
print html
soup = BeautifulSoup(html)
print u''.join(soup.findAll(text=True))

The out put of this code is "Para 1 WordsMerge. Para 2Quote 1Quote 2".

I don't want the last word of paragraph one merging with the first word of paragraph two.
eg. "Para 1 Words Merge. Para 2 Quote 1 Quote 2".
Can this be achieved using the BeautifulSoup library?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌生 2024-12-06 21:35:11

如果您在版本 4 中使用 get_text()。 x:

from bs4 import BeautifulSoup
...
...
soup.get_text(" ")

And if you are using get_text() in version 4.x:

from bs4 import BeautifulSoup
...
...
soup.get_text(" ")
猥琐帝 2024-12-06 21:35:11

只需用空格将各个部分连接起来即可:

print u' '.join(soup.findAll(text=True))

Just join the pieces with a space:

print u' '.join(soup.findAll(text=True))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文