排除findAll使用BeautifulSoup的不必要结果

2024-04-28 14:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

使用BeautifulSoup,我的目标是清除与此HTML挂钩相关的文本:

<p class="review_comment">

所以,使用下面的简单代码

content = page.read()  
soup = BeautifulSoup(content)  
results = soup.find_all("p", "review_comment")

我很高兴能解析这里的文本:

<p class="review_comment">
    This place is terrible!</p>

坏消息是,每隔30次左右,soup.find_all得到一个匹配,它也会匹配并获取一些我真正不想要的东西,这是用户的旧评论,他们已经更新了:

<p class="review_comment">
    It's 1999, and I will always love this place…  
<a href="#" class="show-archived">Read more &raquo;</a></p>

在我试图排除这些旧的重复评论时,我尝试了各种各样的想法。

  • 我一直在试图改变我的soup.find_all()调用中的参数 明确排除之前的任何文本<a href="#" class="show-archived">Read more &raquo;</a>
  • 我沉溺于正则表达式类型匹配的边缘,但没有成功。
  • 我似乎不能利用class="show-archived"属性。

任何想法都将不胜感激。提前谢谢。


Tags: 文本readshowcomment评论placecontentall