Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-使用空格分隔符打印项目_Python_Beautifulsoup - Fatal编程技术网

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

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/"

鉴于此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>
这是可行的,但数据如下:

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版本,那么他也不需要列表。