Python-使用空格分隔符打印项目
鉴于此html:Python-使用空格分隔符打印项目,python,beautifulsoup,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/"
<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>
这是可行的,但数据如下:
a = []
tags = post.find('div', id='catwrap')
for t in tags:
a.push(t.get_text())
print a.join(" ")
电子跟踪评论
如何在循环的中插入空格,使其输出:
电子音轨评论
您可以通过连接一个空格来实现这一点
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
对于
循环,您不需要,请使用join
:
print(" ".join([t.get_text() for t in tags]))
嗯,
我通常一开始就做这件事。所以如果是我,情况会是这样:
a = []
tags = post.find('div', id='catwrap')
for t in tags:
a.push(t.get_text())
print a.join(" ")
你认为这就是你所需要的吗?你的问题是,你实际上并没有找到每个标签——你只找到了包含标签链接的div
,并且正在该容器内打印文本(将是链接的所有文本,但中间没有空格)
要获取标签本身,您需要执行以下操作:
tags = post.find('div', id='catwrap')[0].find('a')
然后,for循环将在每个标记上运行一次,并在新行上打印每个标记。目前并不是循环没有在迭代之间打印空格,问题是只有一次迭代,get_文本的输出没有您想要的空格 如果他使用的是具有生成器表达式的Python版本,那么他也不需要列表。