Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用BeautifulSoup获取深度嵌套的div值?_Python_Beautifulsoup - Fatal编程技术网

Python 如何使用BeautifulSoup获取深度嵌套的div值?

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">

我需要在DOM结构中获取深度嵌套的
元素的值,如下所示:

<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,因为一开始我遇到了一个类型错误。谢谢,现在可以了。你能更详细地描述一下你的答案吗?我不完全理解你的回答:(