我有这段代码可以在 Java 中使用 Jsoup 完成我需要它做的事情
Elements htmlTree = doc.body().select("*");
Elements menuElements = new Elements();
for(Element element : htmlTree) {
if(element.hasClass("header"))
menuElements.add(element);
if(element.hasClass("name"))
menuElements.add(element);
if(element.hasClass("quantity"))
menuElements.add(element);
}
我想做同样的事情,但在 Python 中使用 BeautifulSoup。我试图抓取的 HTML 示例树如下:
<div class="header"> content </div>
<div class="name"> content </div>
<div class="quantity"> content </div>
<div class="name"> content </div>
<div class="quantity"> content </div>
<div class="header"> content2 </div>
<div class="name"> content2 </div>
<div class="quantity"> content2 </div>
<div class="name"> content2 </div>
<div class="quantity"> content2 </div>
等等
基本上我希望输出保留每个元素的相对位置。我将如何使用 Python 和 BeautifulSoup 做到这一点?
编辑:
这是我拥有的python代码(它非常天真)但也许它可以提供帮助?
output = []
for e in soup :
if e["class"] == "pickmenucolmenucat" :
output.append(e)
if e["class"] == "pickmenucoldispname" :
output.append(e)
if e["class"] == "pickmenucolportions" :
output.append(e)