去除额外文本的Python美丽的汤

时间:2017-03-09 10:26:55

标签: python beautifulsoup bs4

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

是html,我试过

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

这给了我如果他在网上,我只想得到这个名字,我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

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'

答案 1 :(得分:2)

实现这一目标的好方法:

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

答案 2 :(得分:1)

如果您可以确保结构类似于您发布的结构,则可以使用以下代码:

let navC = UINavigationController(rootViewController: initialViewController)
self.window?.rootViewController = navC