我在HTML中有这样的无序列表:
<ul>
<li class="label">Equipement</li>
<li>Aluminum tyres</li>
<li>4x4</li>
<li>3. stop lights</li>
<li>Bluetooth</li>
</ul>
仅li
列表中的第一个ul
元素包含列表的标题,其他元素包含需要以纯文本格式提取的功能列表。我知道如何首先定位该li
,但我不知道如何选择所有其他元素。
考虑到此ul
在HTML文档中没有类及其其他许多ul
元素。我可以通过以下方式找到ul
至li
:
(li.previousSibling).get_text()
但无法使用get_text()
提取所有元素,我得到:
[AttributeError:'NavigableString'对象没有属性'get_text']
此外,我需要提取所有li
,但第一个保留标题的除外。我在页面上有几个这样的ul
,它们的长度都是可变的(具有或多或少的li
元素)。
from bs4 import BeautifulSoup
html = '''<ul>
<li class="label">Equipement</li>
<li>Aluminum tyres</li>
<li>4x4</li>
<li>3. stop lights</li>
<li>Bluetooth</li>
</ul>
'''
soup = BeautifulSoup(html, 'html.parser')
text = soup.find_all('li')
for item in text:
print(item.text)