由北77 2023-04-06 21:17 采纳率: 100%
浏览 12
已结题

关于#python#的问题:python爬虫

请问为什么这个代码只能爬取每一页的第一条评论啊?是循环有什么问题吗?求解。

img

def drag_code(self):
    time.sleep(0.5) #在执行查询之前,加一个延时time.sleep(0.5) #在执行查询之前,加一个延时
    image_info = self.track.get_image()

all_comments = [] #所有评论
xingji = []
shijian = []
zp_time = []
tp_ner = []
zhichi = []
huifu = []

for i in range(13):
    for j in range(1,11):
        all_comments.append(browser.find_element(By.XPATH, "//div[@class = 'commentList']/div[@class = 'commentItem']/div[@class = 'contentInfo']/div[@class='commentDetail']".format(j)).text)
        xingji.append(browser.find_element(By.XPATH, "//div[@class = 'commentList']/div[@class = 'commentItem']/div[@class = 'contentInfo']/div[@class = 'scroreInfo']/span[@class = 'averageScore']".format(j)).text)
        shijian.append(browser.find_element(By.XPATH, "//div[@class = 'commentList']/div[@class = 'commentItem']/div[@class = 'contentInfo']/div[@class = 'commentFooter']/div[@class='commentTime']".format(j)).text)
       
    bot = browser.find_element(By.XPATH, "//div[@class = 'poiDetailPage']/div[@class = 'moduleWrap']/div[@class = 'mainModule']/div[@class = 'commentModuleRef']/div[@class = 'commentModule normalModule']/div[@class = 'myPagination']/ul[@class = 'ant-pagination']/li[@class = ' ant-pagination-next']/span[@class = 'ant-pagination-item-comment']")
    browser.execute_script("arguments[0].click();",bot)#通过XPath定位败#浏览器执行脚本
    time.sleep(2)#使当前正在执行的Python程序进入睡眠或延迟几秒钟。
    browser.implicitly_wait(3)#浏览器隐式等待 3
    print(i)

img

  • 写回答

2条回答 默认 最新

  • 深度学习客 2023-04-06 21:56
    关注

    根据代码片段,您的问题可能出现在XPath表达式上。您在获取评论列表的Xpath表达式中使用了.format(j),但是您并没有在字符串中使用花括号来表示要替换的值。因此,.format(j)部分被忽略了,只使用了原始的XPath表达式。

    正确的XPath表达式应该包含一个花括号,用于表示要替换的值。例如,您可以这样修改XPath表达式:

    "//div[@class='commentList']/div[@class='commentItem'][{0}]/div[@class='contentInfo']/div[@class='commentDetail']"
    然后,在获取评论文本时,使用以下代码:

    for j in range(1,11):
        xpath = "//div[@class='commentList']/div[@class='commentItem'][{0}]/div[@class='contentInfo']/div[@class='commentDetail']".format(j)
        all_comments.append(browser.find_element(By.XPATH, xpath).text)
    
    

    同样地,您还需要相应地修改其他XPath表达式,以确保它们包含花括号并使用正确的值进行替换。

    希望这可以帮助您解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥30 logisim中设计一个位于十字路口的交通信号灯控制系统
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。
  • ¥15 MATLAB卫星二体模型仿真