我目前正在尝试使用beautifulsoup4从网页中的html元素中获取文本。我的问题是在页面的其他地方有一个完全相同的命名元素。它就是这样的。
<div class="class">
<span class="1"></span>
<span class="value">text I want</span>
</div>
<div class="class">
<span class="2"></span>
<span class="value">text I DON'T want</span>
</div>
我正在尝试返回“我想要的文字”。现在,这里的好处是,兄弟姐妹之间确实存在阶级差异 - 第一个兄弟姐妹有阶级“1”,而第二个兄弟阶段有阶级“2” - 但我不知道如何实际承受在代码中的区别。 bs4中有经验的人可以帮我解决这个问题吗?
请注意,我正在使用CSS选择器来获取我想要的元素,所以如果我们可以使用它来获取包含文本的元素,那就更好了。
我如何找到元素的例子
soup.select("span[id='identifier']")
答案 0 :(得分:1)
使用XPATH:
soup.find('span[@class="1"]').next_sibling
使用CSS:
soup.select("span.1 ~ .value")
我相信这两个都应该奏效。否则,我建议您查看文档here