所以我需要在看起来像的行之后获取数字
<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)