我可以这样做一个findall正则表达式吗



所以我需要在看起来像的行之后获取数字

<div class="gridbarvalue color_blue">79</div> 

<div class="gridbarvalue color_red">79</div> 

有没有一种方法可以做findAll('div', text=re.recompile('<>)),在那里我可以找到带有gridbarvalue color_<red or blue>的标签?

我在用美肌。

如果我没有把问题说清楚,我也很抱歉,我在这方面很缺乏经验。

class是Python关键字,因此BeautifulSoup希望您在将其用作关键字参数时在其后面加下划线

>>> soup.find_all('div', class_=re.compile(r'color_(?:red|blue)'))
[<div class="gridbarvalue color_blue">79</div>, <div class="gridbarvalue color_red">79</div>]

要匹配文本,请使用

>>> soup.find_all('div', class_=re.compile(r'color_(?:red|blue)'), text='79')
[<div class="gridbarvalue color_blue">79</div>, <div class="gridbarvalue color_red">79</div>]
import re
elems = soup.findAll(attrs={'class' : re.compile("color_(blue|red)")})
for each e in elems:
    m = re.search(">(d+)<", str(e))
    print "The number is %s" % m.group(1)

最新更新