BS4:在标签中获取文本

发布于 2021-01-29 15:26:27

我正在用美丽的汤。有一个这样的标签:

<li><a href="example"> s.r.o., <small>small</small></a></li>

我只想在锚<a>标记中获取文本,而<small>输出中的标记中不包含任何文本;即“ s.r.o.,

我试过了,find('li').text[0]但是没有用。

BS4中有可以执行此操作的命令吗?

关注者
0
被浏览
45
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一种选择是从一开始的第一个元素contents中的a元素:

    >>> from bs4 import BeautifulSoup
    >>> data = '<li><a href="example"> s.r.o., <small>small</small></a></li>'
    >>> soup = BeautifulSoup(data)
    >>> print soup.find('a').contents[0]
     s.r.o.,
    

    另一个可能是找到small标签并获得上一个同级标签:

    >>> print soup.find('small').previous_sibling
     s.r.o.,
    

    好吧,还有各种各样的选择/疯狂选择:

    >>> print next(soup.find('a').descendants)
     s.r.o., 
    >>> print next(iter(soup.find('a')))
     s.r.o.,
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看