【发布时间】:2012-11-27 11:42:01
【问题描述】:
我在用Beautiful Soup 拉出特定的div 标签,好像不能用 简单的字符串匹配。
页面有一些标签形式为
<div class="comment form new"...>
我想忽略的,还有一些
形式的标签<div class="comment comment-xxxx...">
其中 x 表示任意长度的整数,省略号表示任意数量的其他值,由空格分隔(我不关心)。我无法弄清楚 正确的正则表达式,特别是因为我从未使用过 python 的 re 类。
使用
soup.find_all(class_="comment")
查找以单词comment 开头的所有标签。我试过使用
soup.find_all(class_=re.compile(r'(comment)( )(comment)'))
soup.find_all(class_=re.compile(r'comment comment.*'))
还有许多其他变体,但我认为我在这里遗漏了一些关于正则表达式或 match() 如何工作的明显内容。谁能帮帮我?
【问题讨论】:
-
首先,您使用的是BS3还是BS4?一个有
findAll,一个有find_all,一个都没有findall... -
抱歉,BS4 - 我没有直接从我的代码中粘贴,将编辑。
-
该死,因为我有 BS3 的答案……但对于 BS4,它看起来不喜欢课堂上的空格?或者也许我只是不太了解 BS4。我可以匹配
'comment',但不能匹配'comment comment'。我会调查的。
标签: python regex beautifulsoup