gpt4 book ai didi

python - Beautifulsoup 在保持顺序的同时找到不同的部分

转载 作者:行者123 更新时间:2023-11-28 22:40:27 25 4
gpt4 key购买 nike

我希望使用 beutifulsouop 提取具有特定 class 值的 span 部分中的文本,以及具有特定值的 div 部分不同的 class 值,同时保留顺序。

除了不保留顺序 [即该列表在末尾包含所有 div 元素,而不是在它们出现在页面中时]

extract = soup.findAll('span', {"class": "value1"})  
extract += soup.findAll('div', {"class": "value2"})

注意 - 这与问题类似,但略有不同 - BeautifulSoup findAll() given multiple classes?因为我专门查看 spandiv 代码。

最佳答案

没有什么能阻止过滤掉错误的标签。扩展您提到的答案:

from bs4 import BeautifulSoup
soup = BeautifulSoup('<html><body><div class="class1"></div><i class="class1"></i><span class="class2"></span><div class="class1"></div></body></html>')
for e in soup.findAll(True, {"class":["class1", "class2"]}):
if e.name in ("div", "span"):
print e

过滤器也可以写成一行:

[e for e in soup.findAll(True, {"class":["class1", "class2"]}) if e.name in ("div", "span")]

顺便说一句,即使这样也行得通:

 soup.findAll(["div", "span"], {"class":["class1", "class2"]})

参见 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-name-argument有关什么可以是找到所有的第一个参数的文档。

关于python - Beautifulsoup 在保持顺序的同时找到不同的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com