BeautifulSoup如何只找到包含标签的标签?

时间:2017-12-23 07:21:14

标签: python parsing beautifulsoup

我解析的页面有一部分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>}

1 个答案:

答案 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']