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

使用jsonlite包解析Reddit多页数据时遇JSON解析错误

解决Reddit子版块多页数据JSON解析错误问题

问题情况

用R的jsonlite包爬取某Reddit子版块数据时,首页数据能正常读取,但第二页及后续页面调用jsonlite::fromJSON()时触发JSON解析错误,报错提示JSON文本含无效字符——实际返回的是HTML页面内容,而非预期的JSON数据。

错误信息

Error: lexical error: invalid char in json text.
                                      <!doctype html> <html lang="en"> <he
                     (right here) ------^

尝试过的无效方法

  • 改用ndjson包解析返回内容
  • 用curl库发送HTTP请求后再传入fromJSON()解析

解决方案

问题根源是请求链接未添加.json后缀。Reddit的API接口需要通过.json后缀指定返回JSON格式数据,未添加时会默认返回网页HTML,导致JSON解析失败。补充后缀后即可正常获取多页数据。

原错误代码

# 原代码:未加.json后缀,第二页及以后返回HTML
library(jsonlite)
# 假设after参数是分页标记
url <- "https://www.reddit.com/r/subredditname/?after=t3_xxxxxx"
data <- fromJSON(url)

尝试过的代码示例

# 用curl请求后解析
library(curl)
library(jsonlite)
url <- "https://www.reddit.com/r/subredditname/?after=t3_xxxxxx"
resp <- curl_fetch_memory(url)
data <- fromJSON(rawToChar(resp$content))

# 用ndjson尝试解析
library(ndjson)
data <- stream_in(url(url))

解决后的正确代码

library(jsonlite)
# 添加.json后缀,指定返回JSON格式
url <- "https://www.reddit.com/r/subredditname/.json?after=t3_xxxxxx"
data <- fromJSON(url)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:30:52