如何从本地Airbnb网页仅抓取评论文本并排除无关内容?
解决Airbnb本地网页仅提取用户评论的问题
你的问题出在使用的CSS选择器ll4r2nl dir dir-ltr并非用户评论专属,页面中房源介绍、房东信息等模块也复用了这个类,导致抓取到大量无关内容。以下是修正后的代码,通过精准定位评论区域提取真实用户评论:
# Loop through all files in the folder for filename in os.listdir(folder_path): try: with open(os.path.join(folder_path, filename), encoding="utf8") as f: html_content = f.read() # Parse the HTML content using BeautifulSoup soup = BeautifulSoup(html_content, "html.parser") # 先定位评论区专属父容器,再提取单条评论内容 reviews_section = soup.find('div', {'data-section-id': 'REVIEWS'}) if reviews_section: # 提取每条用户评论的文本(类名可根据本地网页实际结构调整) user_reviews = reviews_section.find_all(class_='_1f1oir5 dir dir-ltr') for review in user_reviews: print(review.text.strip()) print('**********************************************') except Exception as error: continue
修正说明:
- 先通过
data-section-id="REVIEWS"锁定评论专属区域,彻底避开其他无关模块 - 使用评论文本专属类提取内容(示例类名若与本地页面不符,可通过浏览器开发者工具查看真实评论元素的类名)
提取后的中文输出:
这对我们来说是个很棒的选择。Akash是我们此次入住的房东,他非常主动地分享入住指引和相关信息,认真跟进各项事宜,对我们的问题和额外请求回应及时。房源和图片里一模一样,甚至在这个凉爽季节看起来更漂亮。客厅和一楼房间的视野绝佳。因为天气冷我们没尝试泳池,但泳池和花园都保持得很干净。从这里到纳西克及周边景点大约40分钟车程,场地很安全,工作人员也住在房源内。Sonu和Shobha尽力让我们有宾至如归的感觉,Jeetendra用丰富的菜单和烧烤打造了美食之旅,我们还很喜欢和Cocktail一起玩耍。谢谢大家! ********************************************** 我们的入住体验非常棒,工作人员十分能干,让整个行程完美无比。我们会强烈向家人和朋友推荐这个地方。 ********************************************** 我们在这个房源度过了愉快的两天,别墅和整个场地维护得很好,湖泊与山脉的景色令人惊叹。工作人员热心周到,食物也很棒。
内容的提问来源于stack exchange,提问作者Vinay Sharma
相关产品推荐
相关产品推荐

