给出这个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
代码提取Electronic
和Track Reviews
:
tags = post.find('div', id='catwrap')
for t in tags:
print t.get_text()
它有效,但数据是这样的:
ElectronicTrack Reviews
如何在for loop
中插入空格,因此输出:
Electronic Track Reviews
答案 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
你认为你需要什么吗?