我无法让BeautifulSoup返回我需要的文字
我使用过滤器来获得我需要的<div>
但是我无法获得我需要的文本。
鉴于下面的html结构,获得ISCED代码“价值”的最佳方法是什么。 BS对象中还有其他类_ =“inline ...”,因此不可能只找到class_ = inline_value,并且html中可能有超过1个ISCED代码
<span class="inline_label">
ISCED:
</span>
<span class="inline_value">
0410: Business & Admin not defined
</span>
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用正则表达式执行此操作:
In [22]: import re
In [23]: from bs4 import BeautifulSoup
In [24]: soup = BeautifulSoup('''<span class="inline_label">
....: ISCED:
....: </span>
....: <span class="inline_value">
....: 0410: Business & Admin not defined
....: </span>''', 'lxml')
....:
In [25]: for el in soup(text=re.compile(r'ISCED')):
....: print(el.parent.find_next_sibling().get_text())
....:
0410: Business & Admin not defined
或
In [26]: for el in soup(class_=re.compile(r'inline')):
....: print(el.get_text(strip=True))
....:
ISCED:
0410: Business & Admin not defined