爬取携程评论结果出现大量重复的原因可能有以下几点:

  1. 网页内容加载延迟:在爬取过程中,可能存在网页内容加载延迟的情况,导致爬取到的页面内容没有完全加载出来,从而导致重复的评论出现。

  2. 爬取速度过快:爬取速度过快可能会导致部分页面内容没有完全加载出来,从而导致重复的评论出现。

  3. 代码逻辑问题:代码中可能存在逻辑问题,导致重复的评论被多次爬取。

为了解决这个问题,可以尝试以下几种方法:

  1. 增加等待时间:在每次爬取页面后,增加适当的等待时间,确保页面内容完全加载出来。

  2. 检查页面内容是否加载完成:可以通过判断页面内容是否完全加载完成,再进行下一步操作,避免爬取到未加载完成的重复评论。

  3. 使用唯一标识符去重:可以通过使用评论的唯一标识符(如评论ID)进行去重操作,避免重复的评论被重复爬取。

  4. 修改代码逻辑:检查代码逻辑,确保没有重复爬取同一页面的情况,并确保爬取到的评论不会被重复保存。

以上是一些可能的解决方法,具体根据实际情况进行调整和优化。

代码示例:

from openpyxl import Workbook,load_workbook
from selenium.webdriver.common.by import By
from selenium import webdriver
import re
import time
from lxml import etree
# 创建浏览器对象
options = webdriver.FirefoxOptions()
#浏览器地址
options.binary_location = r'C:\Users\yuxin\AppData\Local\Mozilla Firefox\firefox.exe'
options.add_argument('--headless')
options.add_argument('--diable-gpu')
browser = webdriver.Firefox(options=options)

#打开网站
browser.get('https://you.ctrip.com/sight/dayi3130/71986.html')
wb=Workbook()
sheet=wb.active
sheet['A1'] = '内容'
sheet['B1'] = '时间'
page_num=1
while page_num<=210:
    page_source=browser.page_source
    tree=etree.HTML(page_source)
    div_list=tree.xpath('/html/body/div[2]/div[2]/div/div[3]/div/div[4]/div[1]/div[4]/div/div[5]/div')
    for div in div_list:
        content=div.xpath('.//div[@class='commentDetail']/text()')[0]
        contenttime=div.xpath('.//div[@class='commentTime']/text()')[0]
        sheet.append([content,contenttime])
    wb.save('./jc630.xlsx')
    page_num+=1
    try:    
        button=browser.find_element(By.CSS_SELECTOR,value='.ant-pagination-next > span:nth-child(1)')
        button.click()
        time.sleep(0.3)
    except:
        pass
爬取携程评论出现大量重复的原因及解决方案

原文地址: https://www.cveoy.top/t/topic/o6qe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录