如何解决instascrape请求头中的json.decoder.JSONDecodeError错误?
解决instascrape下载Instagram Reel时出现的JSONDecodeError错误
问题描述
我是Python的instascrape库新手,尝试编写代码下载指定的Instagram Reel,代码如下:
from instascrape import Reel SESSIONID = '2248906093%3A3FYd2HBRoyhW48%3A15%3AAYcqicDd5En5SuwzN0AUc5U29PJVp7V0zsQLQ80fxQ' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43", "cookie":f'sessionid={SESSIONID};' } insta_reel = Reel( 'https://www.instagram.com/reel/BiFaD8loJlJ/') insta_reel.scrape(headers=headers) insta_reel.download(fp=f".\\Pictures\\reel.mp4") print('Downloaded Successfully.')
运行时出现如下错误:
File "C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\\lib\\json\\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
解决方案
这个错误源于instascrape无法正确解析Instagram返回的响应,核心原因通常是SessionID失效、库版本过时或请求头配置不当,可按以下步骤排查修复:
验证SessionID有效性
SessionID是访问Instagram内容的核心凭证,过期或格式错误会导致返回非标准JSON。重新从浏览器获取最新SessionID:- 浏览器登录Instagram,打开开发者工具(F12)
- 切换到「Application」标签,在左侧「Cookies」中找到
sessionid的值,复制替换代码中的SESSIONID
更新instascrape到最新版本
旧版本库可能无法适配Instagram最新页面结构,执行命令更新:pip install --upgrade instascrape调整请求头配置
你的User-Agent版本过于老旧,替换为当前浏览器的最新UA,同时确保cookie格式正确:headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", "cookie": f"sessionid={SESSIONID};" }指定JSON解析方式
尝试在scrape时明确指定解析方法,避免格式解析错误:insta_reel.scrape(headers=headers, method='json')
另外,需确认目标Reel未设置隐私权限,确保你的账号有权访问该内容。
内容的提问来源于stack exchange,提问作者Mayan19
相关产品推荐
相关产品推荐

