代码之家  ›  专栏  ›  技术社区  ›  wen tian

使用beautifulsoup从网站中提取数字?

  •  1
  • wen tian  · 技术社区  · 7 年前

    以下python代码:

    from bs4 import BeautifulSoup
    div = '<div class="hm"><span class="xg1">查看:</span> 15660<span class="pipe">|</span><span class="xg1">回复:</span> 435</div>'
    soup = BeautifulSoup(div, "lxml")
    hm = soup.find("div", {"class": "hm"})
    print(hm)
    

    在这种情况下,我需要两个数字的输出:

    15660
    435
    

    我想尝试使用beautifulsoup从网站中提取数字。但我不知道怎么做?

    1 回复  |  直到 7 年前
        1
  •  2
  •   cs95 abhishek58g    7 年前

    呼叫 soup.find_all ,带有正则表达式-

    >>> list(map(str.strip, soup.find_all(text=re.compile(r'\b\d+\b'))))
    

    >>> [x.strip() for x in soup.find_all(text=re.compile(r'\b\d+\b'))]
    

    ['15660', '435']
    

    如果需要整数而不是字符串,请调用 int 列表内理解-

    >>> [int(x.strip()) for x in soup.find_all(text=re.compile(r'\b\d+\b'))]
    [15660, 435]