所以我需要在看起来像这样的行之后抓住数字
<div class="gridbarvalue color_blue">79</div>
和
<div class="gridbarvalue color_red">79</div>
我有没有办法findAll('div', text=re.recompile('<>))
找到gridbarvalue color_<red or blue>
的标签?
我正在使用beautifulsoup。
也很抱歉,如果我没有明白我的问题,我对此很缺乏经验。
答案 0 :(得分:1)
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>]
答案 1 :(得分:0)
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)