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

Discord消息爬取返回404错误求助及非成员服务器爬取方案咨询

问题排查与解决方案

一、当前404错误的修复

  1. URL格式错误:你写的API地址少了关键斜杠,正确的接口路径应该是/channels/{channelid},原代码里的channels{channelid}未添加斜杠,导致请求到不存在的路径,直接返回404。
  2. 权限与Token验证:确认你的authorization Token未过期,且当前账号确实是目标服务器的成员、能正常访问该频道。如果Token失效或账号无权限,也可能触发404或403错误。
  3. 修正后的代码(含消息爬取示例):
    注意:你当前的代码是获取频道基本信息的,若要爬取消息,需使用/channels/{channelid}/messages接口:
import requests

def retrieve_messages(channelid, limit=50):
    headers = {
        'authorization': 'MTAzMjczMTk2MTc0OTQyNjE4Ng.GWupVp.8-6vbgdumzJkF7sQNR9Xv-scMALYEGWQtKsmA0'
    }
    # 获取频道消息的正确接口
    url = f'https://discord.com/api/v9/channels/{channelid}/messages?limit={limit}'
    r = requests.get(url, headers=headers)
    
    return r.json()

该接口默认返回最近50条消息,若要获取更早的消息,需用before参数(传入最后一条消息的ID)循环分页请求。

二、非成员服务器的爬取方案

核心限制:Discord的隐私规则禁止非成员访问非公开服务器内容,仅以下两种合规途径可行:

  • 公开可发现服务器的公开频道:部分服务器开启了「服务器发现」功能,这类服务器的公开频道可在未登录或非成员状态下通过网页端查看。你可以模拟浏览器请求(处理Cookie、CSRF令牌等)获取内容,但必须严格遵守Discord服务条款,禁止批量爬取或用于违规用途。
  • 获取官方授权:直接联系目标服务器管理员,申请加入服务器并获取爬取权限,这是最稳妥且合规的方式,适合NLP项目的数据收集。

红线提醒

不要尝试绕过Discord的权限限制爬取非公开内容,这违反服务条款,可能导致账号被封禁,甚至面临法律风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:15:42