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

Reddit帖子评论与用户名爬虫未完整抓取问题排查

为什么我的Reddit评论抓取代码无法获取全部内容?

嘿,我帮你分析下为什么你的代码抓不全Reddit评论和用户名——这里有几个关键问题:

  • 动态加载内容没处理:Reddit的评论是滚动加载的,requests只能拿到页面初始加载的那部分评论,往下滚动或者点击「更多评论」才会加载的内容,静态请求根本拿不到。你的代码只请求了一次页面,自然抓不到后续的评论。

  • 新旧页面混合抓取的不匹配:你从新版页面(soup)提取评论,却从旧版页面(old_soup)提取用户名,这两个页面的评论数量、层级结构可能完全不一样,很容易导致comment_list和username_list长度不匹配,要么漏显示内容,要么直接报错。而且你通过找[–]来定位下一个用户名的方式太脆弱了——页面结构稍微变一下,或者有些评论的格式特殊,就会抓错或者漏抓。

  • 页面结构依赖太脆弱:你用data-test-id='comment'找评论、全局遍历a标签找用户名的方式,完全依赖Reddit当前的页面结构。Reddit经常会调整页面布局,而且像置顶评论、嵌套回复这类特殊评论的结构可能和普通评论不一样,很容易导致部分评论或用户名抓不到。

  • 没处理分层评论和加载更多:Reddit的评论是嵌套的,很多深层回复需要点击「查看更多回复」才会展开,静态请求不会触发这些交互,所以这部分内容你也抓不到。

给你几个改进方向:

  1. 用Reddit官方API(PRAW库):这是最靠谱的方式,直接调用API就能获取所有评论、用户名,不用折腾页面解析,还能轻松处理嵌套评论。比如先安装pip install praw,然后按照官方文档配置账号后就能批量获取内容。
  2. 用Selenium模拟浏览器:如果一定要抓网页,用Selenium打开浏览器,模拟滚动、点击「更多评论」的操作,把所有动态加载的内容都渲染出来后再解析,这样就能拿到全部评论。
  3. 统一页面来源:要么都从新版页面抓评论和用户名,要么都用旧版,确保评论和用户名的对应关系正确。比如在每个评论块里直接找用户名元素,而不是全局找a标签——比如新版页面里,每个data-test-id='comment'的div里,用户名通常在专门的用户信息模块中,找更稳定的层级选择器会更可靠。

你的代码如下:

import requests
from bs4 import BeautifulSoup
listt = []
count = 0
username_list = []
comment_list = []
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}
url = input("Please input reddit url:")
page = requests.get(url, headers=headers)
old_page_url = "https://old"+url[11:]
old_page = requests.get(old_page_url,headers=headers)
soup = BeautifulSoup(page.text,"html.parser")
old_soup = BeautifulSoup(old_page.text,"html.parser")
comments = soup.findAll('div',{'data-test-id':'comment'})
for one_comment in comments:
    comment_list.append(one_comment.text)
for name in old_soup.find_all("a"):
    listt.append(name.text)
for item in listt:
    if item == '[–]':
        username_list.append(listt[count+1])
        count+=1
for i in range(len((comment_list))):
    print(f"Comment made by u/{username_list[i]} = {comment_list[i]}")

内容的提问来源于stack exchange,提问作者oniichan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:27:46