Beautifulsoup:不能选择孩子

时间:2017-07-19 19:56:53

标签: python beautifulsoup

我有以下HTML,我需要获取标签的内容:a,即" Nature"在这种情况下:

<li class="tag">
    <a class="remove-tag" href="#">
        <i class="delete-tag" title="Delete"></i>
    </a>
    <a href="#">Nature</a>
</li>

首先我尝试选择&#39; li&#39;用&#39;标记&#39;类。

soup.findAll("all", {"class": "tag"})

如何获取标签的内容:a?

4 个答案:

答案 0 :(得分:2)

您可以使用您可能熟悉的css选择器。

>>> soup.select_one("li.tag a:nth-of-type(2)").text
u'Nature'

答案 1 :(得分:0)

如果你在汤上做了一个findAll,就会发现不需要穿越。

soup.findAll("a", {"class": "classname"})

答案 2 :(得分:0)

您需要soup.findAll("li", {"class": "tag"})[0].a,即:

<a class="remove-tag" href="#">
<i class="delete-tag" title="Delete"></i>
</a>

答案 3 :(得分:0)

希望这有帮助!

lis = soup.find_all('li', class_='tag')
data_rows=lis.findAll('a')
data=[data_rows[i].getText() for i in range(len(data_rows))]



如果它解决了您的问题,请不要忘记告诉我们:)