gpt4 book ai didi

python - 从 python BeautifulSoup 的输出中删除新行 '\n'

转载 作者:太空狗 更新时间:2023-10-30 02:20:28 27 4
gpt4 key购买 nike

我正在使用 python Beautiful soup 获取以下内容:

<div class="path">
<a href="#"> abc</a>
<a href="#"> def</a>
<a href="#"> ghi</a>
</div>

我的代码如下:

html_doc="""<div class="path">
<a href="#"> abc</a>
<a href="#"> def</a>
<a href="#"> ghi</a>
</div>"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

path = soup.find('div',attrs={'class':'path'})
breadcrum = path.findAll(text=True)

print breadcrum

输出如下,

[u'\n', u'abc', u'\n', u'def', u'\n', u'ghi',u'\n']

我怎样才能只得到这种形式的结果:abc,def,ghi 作为一个字符串?

我也想知道这样获得的输出。

最佳答案

你可以这样做:

breadcrum = [item.strip() for item in breadcrum if str(item)]

if str(item) 将在删除换行符后处理空列表项。

如果你想加入字符串,那么做:

','.join(breadcrum)

这会给你 abc,def,ghi

编辑

虽然上面给了你想要的,正如线程中其他人所指出的,你使用 BS 提取 anchor 文本的方式是不正确的。一旦你有了你感兴趣的 div,你应该使用它来获取它的子元素,然后获取 anchor 文本。作为:

path = soup.find('div',attrs={'class':'path'})
anchors = path.find_all('a')
data = []
for ele in anchors:
data.append(ele.text)

然后做一个','.join(data)

关于python - 从 python BeautifulSoup 的输出中删除新行 '\n',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com