我解析的页面有一部分html代码:
<td>
<a class="soup" href="link">1</a>
</td>
<td>
<a class="soup" href="link">2</a>
<br>
<img src="/any.gif">
</br>
</td>
<td>
<a class="soup" href="link">3</a>
</td>
<td>
<a class="soup" href="link">4</a>
<br>
<img src="/any.gif">
</br>
</td>
<td>
<a class="soup" href="link">5</a>
</td>
问题:如何只获取所有包含br和img的td?
UPD:我尝试使用soup.find('img', {'src': '/any.gif'}).findPreviousSibling('a')
但他只找到一个<a>
(主要目标是让他们旁边的所有<a>
<br><img></br>
}
答案 0 :(得分:2)
对您的代码进行小幅改进
for img in soup.find_all('img', {'src': '/any.gif'}):
if img.findPreviousSibling('a') is not None:
a=img.findPreviousSibling('a')
print a['href']