BS4:在标签中获取文本
我正在用美丽的汤。有一个这样的标签:
<li><a href="example"> s.r.o., <small>small</small></a></li>
我只想在锚<a>
标记中获取文本,而<small>
输出中的标记中不包含任何文本;即“ s.r.o.,
”
我试过了,find('li').text[0]
但是没有用。
BS4中有可以执行此操作的命令吗?
-
一种选择是从一开始的第一个元素
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.,