Ich versuche, BeautifulSoup zu verwenden, um Informationen aus einem nicht einheitlich strukturierten HTML-Block zu extrahieren. Ich suche nach einer Möglichkeit, Textblöcke zwischen Tags in der Such-/Filterausgabe zu kombinieren. Zum Beispiel aus HTML:
<span> <strong>Description</strong> Section1 <ul> <li>line1</li> <li>line2</li> <li>line3</li> </ul> <strong>Section2</strong> Content2 </span>
Ich möchte eine Ausgabeliste erstellen, die bestimmte Tag-Typen ignoriert (ul
和 li
),但捕获顶级未标记文本。我发现的最接近的是 .select(':not(ul,li)')
或 .find_all(['strong'])
im Beispiel oben, aber keiner von ihnen kann sowohl ungetaggten Text der obersten Ebene als auch verschiedene Ziel-Tags erfassen. Das ideale Verhalten wäre etwa so:
.find_all(['strong','UNTAGGED'])
erzeugt die folgende Ausgabe:
[ <strong>Description</strong>, Section1, <strong>Section2</strong>, Content2 ]
要获得输出,您可以先选择
,然后选择它的
next_sibling
。示例
输出