将链接组合成beautifulsoup中的一个输出

时间:2016-03-16 20:16:17

标签: python-3.x beautifulsoup

我试图抓住所有带有某个div标签的链接,我可以完成。问题是每个链接都显示在一个新行中。例如:

Home

Wire Wheels
Crimped

我希望它显示Home,Wire Wheels,Crimped

这可能吗?

这是我用来获取数据的python代码:

for crumbs in soup.find('div',{"id":"breadcrumbs"}).find_all('a'):
        crumbs2 = crumbs.text
        print(crumbs2)

2 个答案:

答案 0 :(得分:1)

使用.get_text()直接获取已删除的文本,str.join()加入字符串:

",".join([crumbs.get_text(strip=True) 
          for crumbs in soup.find('div',{"id":"breadcrumbs"}).find_all('a')])

另请注意,soup.find('div',{"id":"breadcrumbs"}).find_all('a')可以简化为soup.select("#breadcrumbs a")

答案 1 :(得分:1)

您可以指定要打印的其他行结尾。默认值为os.linesep

crumbs = list(soup.find('div',{"id":"breadcrumbs"}).find_all('a'))
for ind, crumb in enumerate(crumbs):
    if ind < len(crumbs) - 1:
        ending = {'end': ', '}
    else:
        ending = {}
    print(crumb.text, **ending)

话虽如此,你肯定应该使用@ alecxe的回答。