Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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
使用bs4 python查找具有特定子标记的标记_Python_Html_Beautifulsoup - Fatal编程技术网

使用bs4 python查找具有特定子标记的标记

使用bs4 python查找具有特定子标记的标记,python,html,beautifulsoup,Python,Html,Beautifulsoup,我有一个html在下面的格式 <div class="consider"> <div class="row"> <p>Text1</p> </div> </div> <div class="consider"> <h2>Hello</h2> </div> <div class="Consider"> <div

我有一个html在下面的格式

<div class="consider">
    <div class="row">
         <p>Text1</p>
    </div>
</div>
<div class="consider">
    <h2>Hello</h2>
</div>
<div class="Consider">
    <div class="row">
        <p>Text2
    </div>
</div>

我只想在其子tagdiv的类为row的情况下获取tag div,这是访问它的方式:

from bs4 import BeautifulSoup
content = '<div class="consider"><div class="row"><p>Text1</p></div></div><div class="consider"><h2>Hello</h2></div><div class="Consider"><div class="row"><p>Text2</p></div></div>'
soup = BeautifulSoup(content, 'lxml')
for div in soup.find_all('div', class_='row'):
    if div.parent.name == "div":
        #do whatever you want with div.parent which is the element you want.
通过选择'div>div.row',我们选择所有具有类行的div标记作为div标记的直接子级,然后通过列表理解,我们选择这些标记的所有父级:

data = '<div class="consider"><div class="row"><p>Text1</p></div></div><div class="consider"><h2>Hello</h2></div><div class="Consider"><div class="row"><p>Text2</p></div></div>'

from bs4 import BeautifulSoup    
soup = BeautifulSoup(data, 'lxml')

divs = [div.parent for div in soup.select('div > div.row')]

print(divs)
产出:

[<div class="consider"><div class="row"><p>Text1</p></div></div>, <div class="Consider"><div class="row"><p>Text2</p></div></div>]

$'.row'.parent'div'类似于这样的内容您能详细说明一下您是否已尝试过全部查找?汤。找到所有的“div”,class='row'是的,但它只给你带row的div。但我想要它的父母