用beautifulsoup循环遍历ol标签的子元素



我有以下html结构:

<ol>
<li>...</li>
<div>...</div>
<li>...</li>
</ol>

当我执行以下操作时:

for e in doc.find('ol').children:
print(e.text)

我得到两个lidiv

我怎么做才能让它们都按正确的顺序排列?

你的脚本开始工作了,你可以稍微调整一下,只打印标签的文本:

for e in soup.find('ol').children:
if e.name:
print(e.text)
from bs4 import BeautifulSoup
html='''
<ol>
<li>...li1</li>
<div>...div</div>
<li>...li2</li>
</ol>
'''
soup = BeautifulSoup(html, 'html.parser')
for e in soup.find('ol').children:
if e.name:
print(e.text)
输出
...li1
...div
...li2

最新更新