Python - 使用空白分隔符打印项目

时间:2017-02-25 22:36:25

标签: python beautifulsoup

给出这个html:

<div id="catwrap" class="categories">
    <a href="http://blahblahblahscience.com/category/electronic/" style="background-color:#006666">Electronic</a>
    <a href="http://blahblahblahscience.com/category/track-reviews/" style="background-color:">Track Reviews</a>                
    <div class="clear"></div>
</div>

我使用此Beautifulsoup代码提取ElectronicTrack Reviews

tags = post.find('div', id='catwrap')
for t in tags:
    print t.get_text()

它有效,但数据是这样的:

ElectronicTrack Reviews

如何在for loop中插入空格,因此输出:

Electronic Track Reviews

4 个答案:

答案 0 :(得分:2)

您不需要for循环,请使用join

print(" ".join([t.get_text() for t in tags]))

答案 1 :(得分:0)

你可以通过连接空格来实现这一点。

tags = post.find('div', id='catwrap')
for t in tags:
    print t.get_text() + " "      # this will concatenate a space at the end of each item

答案 2 :(得分:0)

您的问题是您实际上没有单独找到每个标记 - 您只找到包含标记链接的div,并在该容器内打印文本(这将是该文本的所有文本)链接,但两者之间没有空格)。

要自己获取标记,您需要执行以下操作:

tags = post.find('div', id='catwrap')[0].find('a')

然后你的for循环将每个标签运行一次,在新行上打印每个标签。目前并不是循环不是在迭代之间打印空格,问题是只有一次迭代并且get_text的输出没有你想要的空格。

答案 3 :(得分:-1)

Hmmmmm, 我通常在第一时间完成整个事情。所以,如果它是我,那就是这样的:

container-fluid

你认为你需要什么吗?