我需要使用BeatifulSoup从HTML文件中的div类中的li标签中获取所有内容。
以下是我需要从HTML文件获取哪些值的示例:
<div class="renderedOptions dropdown-menu">
<div>
<ul class="text-option-list">
<li>40</li>
<li>41</li>
<li>42</li>
<li>42 ½</li>
<li>43</li>
<li>44</li>
<li>45</li>
</ul>
</div>
很明显,HTML文件中有很多li标记,因此我只想从指定的div类中获取li标记的内容。我当时在想像这样的东西,但是没用。
from bs4 import BeautifulSoup as bs
xml = bs(product.text, features='lxml')
size = xml.find_all('div', {'class': 'renderedOptions'})
仅打印[]
。
这似乎有什么问题?
答案 0 :(得分:0)
lxml
可能无法正常工作,我建议将html.parser
用于大多数用途:
from bs4 import BeautifulSoup
data = """
<html>
<div class="renderedOptions dropdown-menu">
<div>
<ul class="text-option-list">
<li>40</li>
<li>41</li>
<li>42</li>
<li>42 ½</li>
<li>43</li>
<li>44</li>
<li>45</li>
</ul>
</div>
</div>
</html>
"""
soup = BeautifulSoup(data, 'html.parser')
find = soup.findAll('div', {"class": "renderedOptions dropdown-menu"})
for i in find:
print(i)
这应该打印所需的输出