我无法让BeautifulSoup返回我需要的文本。
我使用过滤器来获取我需要的<div>
,但我无法将文本放入我需要的文本。
鉴于下面的html结构,获取ISCED代码"值"的最佳方法是什么。还有其他class_="内联..."在 BS 对象中,因此不可能只找到 class_=inline_value 并且 html 中可能有多个 ISCED 代码
<span class="inline_label">
ISCED:
</span>
<span class="inline_value">
0410: Business & Admin not defined
</span>
任何帮助非常感谢。
您可以使用正则表达式来执行此操作:
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