Itérer sur les éléments html arbre à l'aide de BeautifulSoup, et de produire une sortie qui maintient la position relative de chaque élément? en Python

J'ai ce code qui fait ce que je dois faire à l'aide de Jsoup en Java

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);
    }

Je veux faire la même chose, mais en Python à l'aide de BeautifulSoup. Un exemple d'arbre de l'HTML, je suis en train de gratter suit:

<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>

etc.

Fondamentalement, je veux que la sortie de préserver la position relative de chaque élément. Comment aurais-je eu à faire cela à l'aide de Python et de BeautifulSoup?

EDIT:

C'est le code python que j'ai (c'est très naïf), mais peut-être que ça peut aider?

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)
ce qui vous a fait penser que BeautifulSoup ne conserve pas l'ordre? Montrer le code que vous avez.
Je n'ai pas vraiment quoi que ce soit. Le problème, je vais avoir, c'est qu'il y a un vide et inutile de balises dans mon contenu. Ce que j'ai fait avec jSoup était fondamentalement descendre et vérifier chaque étiquette s'ils avaient la classe, j'avais besoin alors l'ajout de l'élément à une liste si elle correspond. Je veux savoir comment le faire, ou si il ya un moyen plus facile de le faire
J'ai rajouté un edit avec mon code python (très naïf) il me donne une erreur de type (string indices doivent être des entiers)

OriginalL'auteur Christian | 2012-12-06