小编Chr*_*ian的帖子

使用BeautifulSoup迭代html树中的元素,并生成一个保持每个元素相对位置的输出?在Python中

我有这个代码,它使用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);
    }
Run Code Online (Sandbox Code Playgroud)

我想做同样的事情,但在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>
Run Code Online (Sandbox Code Playgroud)

等等

基本上我希望输出保留每个元素的相对位置.我将如何使用Python和BeautifulSoup做到这一点?

编辑:

这是我的python代码(它非常天真),但也许它可以帮助?

output = []

for e in soup :
  if e["class"] == "pickmenucolmenucat" : …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup html-parsing web-scraping jsoup

6
推荐指数
1
解决办法
2万
查看次数