You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Instagram评论Selenium爬虫仅抓取用户名不返回评论问题求助

问题原因

  • 最核心错误:获取评论内容时取到了第一个span元素
    你使用container.find_element_by_tag_name('span')获取内容,而C4VMK容器下的第一个span就是包裹用户名的元素(也就是你之前取name的_6lAjh类对应的元素),所以拿到的内容和用户名完全一致,需要匹配到第二个span元素才是评论内容。
  • class name查询带多余空格
    你代码中find_element_by_class_name('gElp9 ')、find_element_by_class_name('_6lAjh ')的类名末尾都带了多余空格,class属性匹配是严格的,多余空格会导致匹配失败或者拿到非预期元素,需要删掉末尾空格。
  • url列表存在语法错误
    你列表中'https://www.instagram.com/p/CM8T3HgMQG0/?utm_medium=copy_link'这一行末尾漏了逗号,会导致它和下一行的url拼接成一个字符串,请求时直接404。
  • 多余的pop操作逻辑冗余
    你在try块内和评论遍历结束后都执行了pop(0),如果评论加载失败或者没有评论的场景下,会出现列表为空pop报错的问题,建议调整逻辑只在确认有冗余首条数据的时候执行pop。

修正后的核心遍历代码

comment = driver.find_elements_by_class_name('gElp9') # 去掉末尾多余空格
for c in comment:
    container = c.find_element_by_class_name('C4VMK')
    name = container.find_element_by_class_name('_6lAjh').text # 去掉末尾多余空格
    # 取所有span标签的第二个元素,对应评论内容
    span_elements = container.find_elements_by_tag_name('span')
    content = span_elements[1].text if len(span_elements) >= 2 else '' # 兼容空评论场景
    content = content.replace('\n', ' ').strip()
    user_names.append(name)
    user_comments.append(content)
    print(content)
# 确认列表非空再移除首条冗余的发帖人正文数据
if user_names and user_comments:
    user_names.pop(0)
    user_comments.pop(0)

内容的提问来源于stack exchange,提问作者Fawwaz Zaini Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 14:57:01