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

R语言读取URL向量中CSV时报no lines available in input错误求助

问题解决思路
  • 优先修正read.csv调用参数:read.csv()默认第一个参数为本地文件路径/网络连接对象,若你传入的是getURL()返回的CSV文本字符串,需要显式指定text参数,否则会把字符串内容当做文件名解析,直接返回空输入错误。修正后的测试代码为:
one <- getURL(URLs[1])
# 打印前100个字符确认返回内容
cat(substr(one, 1, 100))
# 用text参数读取文本内容
df <- read.csv(text = one)
  • 替换老旧的请求工具,添加请求头规避反爬:RCurl包的getURL()默认不带浏览器标识,很容易被目标站点的反爬策略拦截返回空内容。建议改用httr包发起请求,模拟正常浏览器请求头:
library(httr)
res <- GET(URLs[1], 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"))
# 先检查请求状态码,200才是正常返回
print(status_code(res))
# 解析返回内容为CSV
df <- read.csv(text = content(res, as = "text"))
  • 校验URL的有效性:你提供的URL中包含token参数,这类鉴权参数通常是临时生效的,可能存在过期、绑定登录态、绑定IP的情况。你可以直接把第一条URL复制到浏览器隐身窗口打开,确认是否能正常下载CSV文件,如果浏览器也打不开,说明token失效,需要重新从myfxbook获取有效的请求token。
  • 处理返回内容的特殊格式:如果确认返回的是CSV文本但仍然报错,可能是CSV开头有空行、注释行,或者分隔符/引号规则不符合默认配置,可以调整read.csv的参数,比如添加skip = N跳过前N行、指定sep = ","、quote = '"'等参数适配格式。
  • 批量请求添加延时:如果需要遍历整个URLs向量下载数据,每两次请求之间添加1-2秒的延时,避免请求频率过高被站点临时封禁IP,返回空内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:24:02