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

Python 使用BeautifulSoup排除findAll的不必要结果,python,beautifulsoup,screen-scraping,Python,Beautifulsoup,Screen Scraping,使用BeautifulSoup,我的目标是清除与此HTML挂钩相关的文本: 因此,使用下面的简单代码 content = page.read() soup = BeautifulSoup(content) results = soup.find_all("p", "review_comment") 我很高兴地解析生活在这里的文本: 这个地方太糟糕了 坏消息是,每隔30次左右,soup.find_all就会得到一个匹配项,它还会匹配并抓取我真正不想要的东西,这是用户的旧评论,他们

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

因此,使用下面的简单代码

content = page.read()  
soup = BeautifulSoup(content)  
results = soup.find_all("p", "review_comment")
我很高兴地解析生活在这里的文本:

这个地方太糟糕了

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

现在是1999年,我会永远爱这个地方…

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

  • 我一直在尝试更改我的
    汤中的参数。find_all()
    调用 明确排除
  • 我陷入了正则表达式类型匹配的困境,但没有成功
  • 我似乎无法利用
    class=“show archived”
    属性

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

这就是你想要的吗

for p in soup.find_all("p", "review_comment"):
    if p.find(class_='show-archived'):
        continue
    # p is now a wanted p

在“坏消息匹配”中,是您不想要的标签和内容,还是您想要拒绝整个P?是的,“坏消息匹配”是一个旧评论,我想要拒绝整个内容。这样做的一个主要原因是,我也搜集了“明星”信息,但突然间我的评论比明星还多。你知道在汤中拼写的特殊方式吗。find()?这是我需要使用的策略,是的。使用正确的循环很简单。感谢您的帮助@msw!