Python 使用BeautifulSoup排除findAll的不必要结果
使用BeautifulSoup,我的目标是清除与此HTML挂钩相关的文本: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就会得到一个匹配项,它还会匹配并抓取我真正不想要的东西,这是用户的旧评论,他们
因此,使用下面的简单代码
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!