爬取携程评论出现大量重复的原因及解决方案
爬取携程评论结果出现大量重复的原因可能有以下几点:
-
网页内容加载延迟:在爬取过程中,可能存在网页内容加载延迟的情况,导致爬取到的页面内容没有完全加载出来,从而导致重复的评论出现。
-
爬取速度过快:爬取速度过快可能会导致部分页面内容没有完全加载出来,从而导致重复的评论出现。
-
代码逻辑问题:代码中可能存在逻辑问题,导致重复的评论被多次爬取。
为了解决这个问题,可以尝试以下几种方法:
-
增加等待时间:在每次爬取页面后,增加适当的等待时间,确保页面内容完全加载出来。
-
检查页面内容是否加载完成:可以通过判断页面内容是否完全加载完成,再进行下一步操作,避免爬取到未加载完成的重复评论。
-
使用唯一标识符去重:可以通过使用评论的唯一标识符(如评论ID)进行去重操作,避免重复的评论被重复爬取。
-
修改代码逻辑:检查代码逻辑,确保没有重复爬取同一页面的情况,并确保爬取到的评论不会被重复保存。
以上是一些可能的解决方法,具体根据实际情况进行调整和优化。
代码示例:
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 著作权归作者所有。请勿转载和采集!