Python 如何使用BeautifulSoup获取深度嵌套的div值?
我需要在DOM结构中获取深度嵌套的Python 如何使用BeautifulSoup获取深度嵌套的div值?,python,beautifulsoup,Python,Beautifulsoup,我需要在DOM结构中获取深度嵌套的元素的值,如下所示: <div class="panda"> <div class="that"> <ul class="foo"> <li class="bar"> <div class="hi"> <p class="bye">
元素的值,如下所示:
<div class="panda">
<div class="that">
<ul class="foo">
<li class="bar">
<div class="hi">
<p class="bye">
<span class="cheese">Cheddar</span>
问题在于
soup.findAll(“span”,“class”:“cheese”})
页面上有数百个span元素,类为“cheese”,所以我需要按类“panda”过滤它们。我需要获得一个值列表,如[“切达”、“帕尔马干酪”、“瑞士”]
使用css选择器:
[e.get_text() for e in soup.select('.panda .cheese')]
或者,如果您喜欢查找所有:
# Calling a soup or tag is the same as find_all
[e.get_text() for panda in soup('div', {'class': 'panda'})
for e in panda('span', {'class': 'cheese'})]
差不多了。这将返回完整的标记和内部html,如parmasan
。我只需要值parmasan
,我会接受你的回答。我必须安装BeautifulSoup4,因为一开始我遇到了一个类型错误。谢谢,现在可以了。你能更详细地描述一下你的答案吗?我不完全理解你的回答:(