代码之家  ›  专栏  ›  技术社区  ›  torger

从网站列表中提取数据,不带多余的标签

  •  0
  • torger  · 技术社区  · 16 年前

    工作代码: Google dictionary lookup via python and beautiful soup ->只需执行并输入一个单词。

    我只是从一个特定的列表项中提取了第一个定义。然而,为了得到普通的数据,我必须在换行处拆分数据,然后去掉多余的列表标记。

    我的问题是,是否有一种方法可以在不进行上述字符串操作的情况下提取特定列表中包含的数据——也许是我还没有看到的漂亮的汤中的函数?

    这是代码的相关部分:

    # Retrieve HTML and parse with BeautifulSoup.
        doc = userAgentSwitcher().open(queryURL).read()
        soup = BeautifulSoup(doc)
    
    # Extract the first list item -> and encode it.
        definition = soup('li', limit=2)[0].encode('utf-8')
    
    # Format the return as word:definition removing superfluous data.
        print word + " : " + definition.split("<br />")[0].strip("<li>")
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Jason Culverhouse    16 年前

    我想你在找findall(text=true),这将从标签中提取文本。

    definitions = soup('ul')[0].findAll(text=True)
    

    将返回在标记边界处断开的所有文本内容的列表