将字符串与list元素连接在一起只会返回最后一个元素

时间:2018-11-26 18:08:28

标签: python for-loop beautifulsoup

我正在使用BeutifulSoup从html文件中提取某些数据,当我应用以下代码作为最终结果时,即标记的子级列表的所有元素的并置,我只得到了final元素在歌词变量中。

        lyrics = ""
        for content in songResult.children:
            if "br" in str(content):
                continue                  
            lyrics += str(content)
        print(lyrics)

孩子是br标签或songResult标签内的文本。我忽略了br标签,并尝试使用print(content)而不是lyrics += str(content)来进行完美打印。我似乎无法找出问题的根源。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

对我来说很好。我做到了:

lyrics = ""

children = ['testbr', 'test', 'testbr2', 'test', 'testbr3']

for content in children:
    if "br" in str(content):
        continue
    lyrics += str(content)
    print('in loop'),
    print(lyrics)

print('out of loop'),
print(lyrics)

上面的代码段对您有用吗?

答案 1 :(得分:0)

确保此代码不在另一个循环中,以使“歌词”未重置为“”。这将导致您描述的症状(在if语句中打印出来很好,但“歌词”仅包含最后一个变量)。