使用Naver Client ID爬取网页时认证失败(错误码024)的排查与解决
常见原因及修复步骤
确认应用权限与密钥有效性
登录Naver开放平台进入「应用管理」,检查你的应用是否已开通新闻搜索API权限——未添加对应权限的话,即使密钥正确也会返回认证失败。同时严格复制平台上的Client ID和Secret,确保没有多余空格、换行符,注意二者均为大小写敏感。修正请求URL格式
当前URL末尾的?属于多余内容,httr的query参数会自动拼接查询字符串,无需手动添加。修正后的URL应为:url = 'https://openapi.naver.com/v1/search/news.json'验证请求头拼写
确保请求头的键名完全符合要求,不能有拼写错误:X-Naver-Client-Id(注意Id是大写I+小写d)X-Naver-Client-Secret(全程大小写严格匹配)
处理关键词编码
若查询关键词包含韩文,可手动使用URLencode()确保编码正确,避免因字符解析问题触发错误:query = list(query = URLencode('한글 키워드'), display = 100, start = 1, sort = 'date')
修正后的完整代码示例
library(httr) # 替换为你的有效Client ID和Secret client_id <- "你的Client ID" client_secret <- "你的Client Secret" news <- GET( url = 'https://openapi.naver.com/v1/search/news.json', add_headers( 'X-Naver-Client-Id' = client_id, 'X-Naver-Client-Secret' = client_secret ), query = list( query = URLencode('korean characters'), # 也可直接输入韩文,如'한글' display = 100, start = 1, sort = 'date' ) ) # 先检查响应状态码,200代表请求成功 print(news$status_code) # 获取返回内容 content(news)
额外检查项
- 确认应用状态为「正常」,未被平台封禁或限制
- 查看API调用次数是否超出Naver开放平台的免费额度,超出额度也可能触发类认证错误
内容的提问来源于stack exchange,提问作者Subeen Choi
相关产品推荐
相关产品推荐

