Python 美汤去除多余文字

Python beautiful soup removing extra text

<div class="friendBlockContent">
                Bartdavy<br>
                <span class="friendSmallText">
        Online
                </span>
            </div>

是html,我试过了

 for div in soup.findAll("div", class_="friendBlockContent", ):
     print(div)

这让我知道他是否在线,我只想知道他的名字,我该怎么做?

如果你能确定结构与你发布的相似,你可以使用下面的代码:

for div in soup.findAll("div", class_="friendBlockContent", ):
     print(div.contents[0].strip())

div 有两个文本节点,您可以使用 .strings 访问并使用 .stripped_strings 获取干净的数据。 然后用 nameonline 字段解压两个节点。

In [50]:  for div in soup.findAll("div", class_="friendBlockContent", ):
    ...:      name, online = div.stripped_strings
    ...:     

In [51]: name
Out[51]: 'Bartdavy'

In [52]: online
Out[52]: 'Online'

实现此目的的好方法:

for div in soup.findAll("div",class_="friendBlockContent", ):
    print(div.contents[0])